如何创建一个包含两个元素的元组集合?每个元组将具有x
和y
值:(x,y)
。我有数字1到50,想要将x
分配给值1到50并且y
也分配给值1到50。
S = {(1,1),(1,2),(1,3),(1,4)...(1,50),(2,1)......(50,50)}
我尝试过
positive = set(tuple(x,y) for x in range(1,51) for y in range(1,51))
但是错误信息说元组只接受一个参数。我需要怎么做才能设置一个元组列表?
mySet = set(itertools.product(range(1,51), repeat=2))
或者
mySet = set((x,y) for x in range(1,51) for y in range(1,51))
tuple
只接受一个参数。不要使用括号,而是直接在元组中明确写出参数。
# vvvvv
>>> positive = set((x,y) for x in range(1,5) for y in range(1,5))
>>> positive
{(1, 2), (3, 2), (1, 3), (3, 3), (4, 1), (3, 1), (4, 4), (2, 1), (2, 4), (2, 3), (1, 4), (4, 3), (2, 2), (4, 2), (3, 4), (1, 1)}
tuple(x,y)
改为(x,y)
。 - Foo Bar Usertuple
将其他可迭代对象转换为元组(例如tuple([1,2])
->(1,2)
),所以它只期望一个参数。 - Steinar Lima