我處理列表:如果類型不是字符串工作不正常
text = ['package1:', 'package2:', 'package1,', ['package2', 'package4'], 'package3:', ['package2', 'package1,'], ['package3', 'package10,'], 'package60']
什麼,我想要做的工作是在一側的字符串,在其他的子列表。
如果我寫:
for i in range(len(text)):
print(type(text[i]))
if text[i] != str:
print(text[i],'Not String')
else:
print(text[i],'String')
輸出如下
<class 'str'>
package1: Not String
<class 'str'>
package2: Not String
<class 'str'>
package1, Not String
<class 'list'>
['package2', 'package4'] Not String
<class 'str'>
package3: Not String
<class 'list'>
['package2', 'package1,'] Not String
<class 'list'>
['package3', 'package10,'] Not String
<class 'str'>
package60 Not String
因爲package1:
實際上是一個字符串,它是不正確的。
我的錯誤在哪裏?
對於python2,使用'basestring'作爲'isinstance()'的第二個參數。它是'str'和'unicode'的普通類。 –
@ŁukaszR:除非你真的只想測試'str',而不是兩種類型,當然。 – abarnert