[英]Reversing order of a tuple of list
我有一个元组([1,2,3],[4,5,6]),我想反转里面的列表,使它成为([3,2,1],[6,5,4])无需创建新元组并向其添加元素。 我最接近的是:
my_func(....):
for i in tuple(...):
i = i[::-1]
return tuple(....)
问题是,当我打印出我想要的东西时......元组从未改变过
元组是不可变的,但它们包含的对象可以是可变的或不可变的,所以如果我们修改元组包含的可变对象,那么更改将反映在该对象的所有引用上,包括元组。
在这种情况下我们列出了,所以我们需要做的就是遍历元组并在列表上调用.reverse()
。
>>> t = ([1,2,3], [4,5,6])
>>> for x in t:
... x.reverse()
...
>>> t
([3, 2, 1], [6, 5, 4])
另一个例子:
>>> x = [1, 2, 3]
>>> t = (x, 'abc')
>>> x.reverse()
>>> t
([3, 2, 1], 'abc')
>>> x
[3, 2, 1]
正如霜冻所说,元组是不可改变的,所以你必须创造新元组。
你可以这样做:
>>> a = ([1,2,3],[4,5,6])
>>> b = map(lambda t: reversed(t), a)
>>> for sublist in b:
... for item in sublist:
... print(item)
...
3
2
1
6
5
4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.