我想要打印出现不止一次的任何数字.如何将for循环更改为列表推导?
from collections import Counter
cnt=Counter()
in1="4 8 0 3 4 2 0 3".split(" ")
for elt in in1:
cnt[elt]+=1
more_than_one=[]
for value, amount in cnt.items():
if amount > 1: more_than_one.append(value)
print(*more_than_one)
Run Code Online (Sandbox Code Playgroud)
理想输出:4 0 3
而不是自己计算值:
cnt=Counter()
in1="4 8 0 3 4 2 0 3".split(" ")
for elt in in1:
cnt[elt]+=1
Run Code Online (Sandbox Code Playgroud)
你可以简单地传递in1给collections.Counter()你做所有的计数:
cnt = Counter(in1)
Run Code Online (Sandbox Code Playgroud)
至于将代码转换为列表理解,您可以尝试这样做:
from collections import Counter
in1="4 8 0 3 4 2 0 3".split()
cnt = Counter(in1)
print([k for k, v in cnt.items() if v > 1])
Run Code Online (Sandbox Code Playgroud)
哪些输出:
['4', '0', '3']
Run Code Online (Sandbox Code Playgroud)
注意:您也不需要传递" "给split()它,因为它默认为空格.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |