我正在使用列表:
text = ['package1:', 'package2:', 'package1,', ['package2', 'package4'], 'package3:', ['package2', 'package1,'], ['package3', 'package10,'], 'package60']
Run Code Online (Sandbox Code Playgroud)
我想做的是一方面处理字符串,另一方面处理子列表.
如果我写:
for i in range(len(text)):
print(type(text[i]))
if text[i] != str:
print(text[i],'Not String')
else:
print(text[i],'String')
Run Code Online (Sandbox Code Playgroud)
输出如下
<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
Run Code Online (Sandbox Code Playgroud)
哪个不正确,因为package1:实际上是一个字符串.
我的错误在哪里?
print(type(text[i]))
if text[i] != str:
Run Code Online (Sandbox Code Playgroud)
您打印type(text[i])(类型)但正在比较text[i](值)与类型.所以当然你最终得到的结果似乎毫无意义.只需比较类型,str它将起作用.
话虽这么说,检查类型的推荐方法是使用isinstance:
if isinstance(text[i], str):
print(text[i], 'String')
else:
print(text[i], 'Not String')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |