我正在尝试创建以下类型的元组:
('a', 0), ('b', 0), ('a', 1), ('b', 1), ('a', 2), ('b', 2), ('a', 3), ('b', 3)
Run Code Online (Sandbox Code Playgroud)
来自数组:
A = ['a','b'] 和数字0到3.
什么是好的pythonic表示,因为我在这里结束了一个真正的for循环.
使用itertools.product.
from itertools import product
tuples = list(product(['a', 'b'], [0, 1, 2, 3]))
print(tuples) # [('a', 0), ('a', 1), ..., ('b', 0), ('b', 1), ...]
Run Code Online (Sandbox Code Playgroud)
如果您按照最初指定的确切顺序需要它们,那么:
tuples = [(let, n) for n, let in product([0, 1, 2, 3], ['a', 'b'])]
Run Code Online (Sandbox Code Playgroud)
如果你的评论"我在这里以一个真正的for循环结束"意味着你最终只想迭代这些元素,那么:
for n, let in product([0, 1, 2, 3], ['a', 'b']):
tup = (let, n) # possibly unnecessary, depending on what you're doing
''' your code here '''
Run Code Online (Sandbox Code Playgroud)