【发布时间】:2020-12-15 06:39:32
【问题描述】:
我是 python 新手,正在尝试完成一个练习,我打印列表中的每个变量,包括任何嵌套列表。
我的问题是我无法让嵌套列表被 if 语句识别为列表。
当我运行 type(i) 时,它返回它是一个列表,但是当我运行 if type(i) is list 或 if type(i) == list 时它无法执行。
当我尝试使用 if isinstance(type(i), list) 时,我得到一个 TypeError:isinstance() arg 2 must be a class, type, or tuple of classes and types.
当我尝试isinstance(type(i),collections.Sequence) 时,嵌套列表也不被识别为列表。
如果有人有任何建议,我们将不胜感激。我正在使用 Python 2.6,因为我正在学习 MIT 课程。
谢谢
# -*- coding: cp1252 -*-
import collections
listval= ["war",1,["brie","rocky","roq le coq"],[1,2,3]]
def printlist2(lists):
for i in lists:
print("Variable value: ", type(i))
print ("Is variable a list: ",isinstance(type(i),collections.Sequence))
#print (isinstance(type(i),list))
if isinstance(type(i),collections.Sequence):
print ("This is a list")
printlist2(i)
elif type(i) == list:
print ("This is a list")
elif type(i) is int:
#print ("String length is equal to ",len(str(i)))
print ("i is equal to integer ",i)
else:
#print ("String length is equal to ",len(i))
print ("i is equal to string ",i)
printlist2(listval)
【问题讨论】:
-
使用实例时不需要type()
-
如果您是 python 新手,请不要从 python 2.6 开始。 Python 2 已于去年结束。使用 3.8 或 3.9 等最新版本。
标签: python python-2.6