我有一个如下所示的列表 - 从此我已经过滤了以'测试开头的表格:SF.AcuraUsage _' (字符串匹配)
test:SF.AcuraUsage_20150311
test:SF.AcuraUsage_20150312
test:SF.AcuraUsage_20150313
test:SF.AcuraUsage_20150314
test:SF.AcuraUsage_20150315
test:SF.AcuraUsage_20150316
test:SF.AcuraUsage_20150317
test:SF.ClientUsage_20150318
test:SF.ClientUsage_20150319
test:SF.ClientUsage_20150320
test:SF.ClientUsage_20150321
我正在使用这个for循环,但不确定它为什么不起作用:
for x in list:
if(x 'test:SF.AcuraUsage_'):
print x
我试过了:
for x in list:
alllist = x
vehiclelist = [x for x in alllist if x.startswith('geotab-bigdata-test:StoreForward.VehicleInfo')]
我仍然得到错误'字典对象没有属性开头'。
答案 0 :(得分:3)
您不应该为列表list
命名,因为它会覆盖内置类型list
但是,如果您想使用Python过滤该列表,请考虑使用此列表理解:
acura = [x for x in list if x.startswith('test:SF.AcuraUsage')]
然后,如果你想输出它
for x in acura:
print(x)
答案 1 :(得分:0)
列表理解对此有好处。
获取包含以'测试开头的所有项目的列表:SF.AcuraUsage _' :
new_list = [x for x in list if x.startswith('test:SF.AcuraUsage_' ')]
或不的项目以' test开头:SF.AcuraUsage _' :
new_list = [x for x in list if not x.startswith('test:SF.AcuraUsage_' )]
答案 2 :(得分:0)
使用re模块:
import re
for x in list:
ret = re.match('test:SF.AcuraUsage_(.*)',x)
if ret:
print(re.group())