nit*_*tin 3 python list-comprehension
我有一个列表,像这样,
a = ['dog','cat','mouse']
Run Code Online (Sandbox Code Playgroud)
我想构建一个列表,它是所有列表元素的组合,看起来像,
ans = ['cat-dog', 'cat-mouse','dog-mouse']
Run Code Online (Sandbox Code Playgroud)
这就是我提出的,
a = ['dog','cat','mouse']
ans = []
for l in (a):
t= [sorted([l,x]) for x in a if x != l]
ans.extend([x[0]+'-'+x[1] for x in t])
print list(set(sorted(ans)))
Run Code Online (Sandbox Code Playgroud)
是否有更简单,更pythonic的方式!
订购有多重要?
>>> a = ['dog','cat','mouse']
>>> from itertools import combinations
>>> ['-'.join(el) for el in combinations(a, 2)]
['dog-cat', 'dog-mouse', 'cat-mouse']
Run Code Online (Sandbox Code Playgroud)
或者,为了匹配您的示例:
>>> ['-'.join(el) for el in combinations(sorted(a), 2)]
['cat-dog', 'cat-mouse', 'dog-mouse']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |