[英]How can I do a for comprehension with if/elif, and no else?
我想從中創建一個理解:
for w in s:
if w in pw_set:
a[w] += 1
elif t in nw_set:
a[w] += 1
我有這樣的東西,但它不起作用
[(a[w]+=1) if (w in pw_set) else (a[w]+=1) if (w in nw_set) for w in s]
如果你真的,絕對想用列表理解來做到這一點,你需要一個collections.Counter
來累積結果。 (它可以從一個簡單的值列表中計算出現次數。)
> pw_set = {'a','b', 'c'}
> nw_set = {}
> s = ['a', 'b', 'q', 'z', 'e']
> a = collections.Counter(
[
w
for w in (
w if (w in pw_set or w in nw_set) else None
for w in s
)
if w is not None
]
)
Counter({'a': 1, 'b': 1})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.