[英]String matching in lists - Python
我有一個類似下面的列表-從這里我過濾了以'test: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')]
我仍然收到錯誤消息“字典對象沒有屬性startswith”。
您不應該為列表list
命名,因為它會覆蓋內置類型list
但是,如果您想使用Python過濾該列表,請考慮使用以下列表理解:
acura = [x for x in list if x.startswith('test:SF.AcuraUsage')]
然后,如果您想輸出它
for x in acura:
print(x)
列表理解對此很有幫助。
獲取以'test: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_' )]
使用re模塊:
import re
for x in list:
ret = re.match('test:SF.AcuraUsage_(.*)',x)
if ret:
print(re.group())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.