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()
来做这些事情。