我可以为元组附加值
>>> x = (1,2,3,4,5)
>>> x += (8,9)
>>> x
(1, 2, 3, 4, 5, 8, 9)
但是如何将元组附加到元组
>>> x = ((1,2), (3,4), (5,6))
>>> x
((1, 2), (3, 4), (5, 6))
>>> x += (8,9)
>>> x
((1, 2), (3, 4), (5, 6), 8, 9)
>>> x += ((0,0))
>>> x
((1, 2), (3, 4), (5, 6), 8, 9, 0, 0)
我怎样才能成功
((1,2),(3,4),(5,6),(8,9),(0,0))
答案 0 :(得分:10)
x + ((0,0),)
应该给你
((1, 2), (3, 4), (5, 6), (8, 9), (0, 0))
Python对于单元素元组有一个不稳定的语法:(x,)
它显然不能只使用(x)
,因为它只是括号中的x
,因此是奇怪的语法。使用((0, 0),)
,我将你的4元组对与1元组结对,而不是(0, 0)
中的2元组整数。
答案 1 :(得分:4)
添加额外的括号:
>>> x = ((1,2), (3,4), (5,6)) + ((8,9),)
>>> x
((1, 2), (3, 4), (5, 6), (8, 9))
注意尾随的逗号。这将使您添加一个新的对元组。
另外,只需注意:这是不追加,因为元组是不可变的。你正在创造一个完全全新的元组。
希望这有帮助!
答案 2 :(得分:3)
[请参阅下面的内容]
这也应该有效:
x += (0,0),
这是不安全的!感谢Amadan和aIKid的精彩讨论。
正如Amadan指出的那样,这个特定情况只会因为赋值运算符+=
的优先级低于,
而有效,所以当两个元组加入时,(0,0),
已经成为((0,0),)
。
但如果你尝试:
((1, 2), (3, 4)) + (5, 6),
结果将是凌乱的
(((1, 2), (3, 4), 5, 6),)
因为+
的优先级高于,
,所以数字5和6分别加入元组!
然后中间阶段是((1, 2), (3, 4), 5, 6),
,最后这个带有最终,
的元组被“更正”以给出(((1, 2), (3, 4), 5, 6),)
。
回家消息:使用符号(5, 6),
是不安全的,因为它被“更正”到((5, 6),)
的优先级可能低于其他运营商。
答案 3 :(得分:0)
在python中,((0,0))
和(0,0)
都是相同的:
>>> x=((0,0))
>>> y=(0,0)
>>> x==y
True
所以要获得((0,0))
,您需要输入((0,0),)
答案 4 :(得分:0)
>>> x = ((1,2), (3,4), (5,6))
>>> x += ((8,9),)
>>> x
((1, 2), (3, 4), (5, 6), (8, 9))
>>> x += ((10,11),(12,13))
>>> x
((1, 2), (3, 4), (5, 6), (8, 9), (10, 11), (12, 13))
要使用单个元素表示元组,您必须使用尾随逗号。与list不同,元组是不可变的