在 Python 中创建元组的集合。

23

如何创建一个包含两个元素的元组集合?每个元组将具有xy值:(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))

但是错误信息说元组只接受一个参数。我需要怎么做才能设置一个元组列表?


5
tuple(x,y) 改为 (x,y) - Foo Bar User
1
因为 tuple 将其他可迭代对象转换为元组(例如 tuple([1,2]) -> (1,2)),所以它只期望一个参数。 - Steinar Lima
2个回答

24
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))

6
< p > 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)}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接