Len*_*ran 9 python python-itertools python-3.x
from itertools import product
teams = ['india', 'australia', 'new zealand']
word_and = ['and']
tmp = '%s %s %s'
items = [teams, word_and, teams]
print(list(tmp % a for a in list(product(*items))))
Run Code Online (Sandbox Code Playgroud)
打印:
['india and india',
'india and australia',
'india and new zealand',
'australia and india',
'australia and australia',
'australia and new zealand',
'new zealand and india',
'new zealand and australia',
'new zealand and new zealand']
Run Code Online (Sandbox Code Playgroud)
如何:
the*_*eye 16
你应该使用itertools.combinations
这样的
>>> from itertools import combinations
>>> teams = ['india', 'australia', 'new zealand']
>>> [" and ".join(items) for items in combinations(teams, r=2)]
['india and australia', 'india and new zealand', 'australia and new zealand']
Run Code Online (Sandbox Code Playgroud)
但是对于这个简单的情况,你可以运行两个循环,就像这样
>>> ["%s and %s" % (t1, t2) for i, t1 in enumerate(teams) for t2 in teams[i + 1:]]
['india and australia', 'india and new zealand', 'australia and new zealand']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4752 次 |
最近记录: |