为什么我的循环不能识别任何数据值?

2024-06-26 14:59:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习数据结构和算法,并决定启动一个快速代码,用于将列表拆分为数据类型。我的目标是有一个循环来检查列表中的每个值,然后有if语句来确定它是int、bool、string还是float。我不知道为什么,但是有条件语句的东西关闭了,因为它运行我的最后一个“else”语句。你知道吗

myList = ['test',3,True,'chicken',False,95,33/4,.02,'rabbit',False]
myInts = []
myBools = []
myStrings = []
myFloats = []

for a in myList:
  if a == int:
    myInts.append(a)
  elif a == bool:
    myBools.append(a)
  elif a == str:
    myStrings.append(a)
  else:
    myFloats.append(a)

print('Ints:', myInts)
print('Bools:',myBools)
print('Strings:',myStrings)
print('Floats:',myFloats)

Tags: false列表if语句elseintboolprint
2条回答

您可以使用快捷方式,也可以使用isinstance方法,将分隔列表中的每个类型作为

myStrings=[s for s in myList if isinstance(s,str)]

其他类型也一样。你知道吗

您需要使用type(x)来确定类型。 但您真正想做的是使用:isinstance(a, int)。您可以将第二个参数更改为任何类型,如str、bool等

相关问题 更多 >