簡體   English   中英

列表中的字符串匹配-Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM