私はデータ構造とアルゴリズムを学び、リストをデータ型に分離するためのクイックコードを開始することに決めました。私の目標は、リスト内の各値をチェックし、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)
数は 'int'、' bool'、 'str'、' float'、または 'str'になることはありません。それらは型であり、値は型と同じではありません。 'type(a)is int'などを使用してください。 – kindall
代わりに 'isinstance(a、bool)'などを使用してください。 –
[Pythonで型をチェックする標準的な方法は何ですか?](https://stackoverflow.com/questions/152580/whats-the-canonical- way-to-check-for-python) – mkrieger1