Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从两个独立的元组开始,如何生成一个非嵌套元组?_Python_List_Tuples - Fatal编程技术网

Python 从两个独立的元组开始,如何生成一个非嵌套元组?

Python 从两个独立的元组开始,如何生成一个非嵌套元组?,python,list,tuples,Python,List,Tuples,假设我有两个元组: tuple1 = ("a", "b", "c") tuple2 = ("y", "z") 我想返回一个元组: return_tuple == ("a", "b", "c", "y", "z") 这里我面临的挑战是元组是不可变的,因此我不能简单地将tuple2附加到tuple1。我知道我可以将两者转换为列表,然后再转换回元组,但我不想这样做(除非我必须这样做) 我也试着这样做: return_tuple = ("a", "b", "c", sum(tuple2, ()))

假设我有两个元组:

tuple1 = ("a", "b", "c")
tuple2 = ("y", "z")
我想返回一个元组:

return_tuple == ("a", "b", "c", "y", "z")
这里我面临的挑战是元组是不可变的,因此我不能简单地将tuple2附加到tuple1。我知道我可以将两者转换为列表,然后再转换回元组,但我不想这样做(除非我必须这样做)

我也试着这样做:

return_tuple = ("a", "b", "c", sum(tuple2, ()))
这不起作用,因为:

TypeError: can only concatenate tuple (not "str") to tuple.

有没有一种干净、通俗、漂亮的方法来实现这一点?

只需将元组与
+
运算符一起添加即可:

>>> tuple1 = ("a", "b", "c")
>>> tuple2 = ("y", "z")
>>> tuple1 + tuple2  # This creates a new tuple object
('a', 'b', 'c', 'y', 'z')
>>> tuple1  # tuple1 is unaffected
('a', 'b', 'c')
>>> tuple2  # tuple2 is also unaffected
('y', 'z')
>>>
请注意,您可以对字符串和列表执行相同的操作:

>>> s1 = "a"
>>> s2 = "b"
>>> s1 + s2
'ab'
>>> s1
'a'
>>> s2
'b'
>>> l1 = [1, 2, 3]
>>> l2 = [4, 5, 6]
>>> l1 + l2
[1, 2, 3, 4, 5, 6]
>>> l1
[1, 2, 3]
>>> l2
[4, 5, 6]
>>>

这是否意味着
[“a”、“b”、“c”]+[“y”、“z”]
不会创建新的列表对象?这似乎暗示了这一点,但得出的结论是,这将是一个逻辑谬误,也是错误的。谢谢。如果这是真的,那么我认为我所知道的关于Python的一切都会在一片热泪中被摧毁。对于一个极其简单的解决方案,这是多么透彻的解释啊!非常感谢您--我是一个初学者,它说明了这一点。正确的语法应该是:
sum((tuple1,tuple2),())
。但是不要用
sum()
来做这些事情。