Python 反转列表中元素的值

Python 反转列表中元素的值,python,list,Python,List,所以我得到了这个列表: my_old_list = [(1,2),(3,4),(5,6),(7,8),(9,0)] 我想将元素的内容颠倒为: my_new_list = [(2,1),(4,3),(6,5),(8,7),(0,9)] 我发现了很多不同的东西,但它从来没有真正改变列表的方式,我想在这里使用列表理解,如下所示: my_new_list = map(lambda tup: (tup[1], tup[0]), my_old_list) new_list = res = [(sub[

所以我得到了这个列表:

my_old_list = [(1,2),(3,4),(5,6),(7,8),(9,0)]
我想将元素的内容颠倒为:

my_new_list = [(2,1),(4,3),(6,5),(8,7),(0,9)]

我发现了很多不同的东西,但它从来没有真正改变列表的方式,我想在这里使用列表理解,如下所示:

my_new_list = map(lambda tup: (tup[1], tup[0]), my_old_list)
new_list = res = [(sub[1], sub[0]) for sub in my_old_list ] 
输出

[(2, 1), (4, 3), (6, 5), (8, 7), (0, 9)]
这里有一个方法:

[tuple(reversed(i)) for i in my_old_list]
# [(2, 1), (4, 3), (6, 5), (8, 7), (0, 9)]
或类似地:

[(*reversed(i),) for i in my_old_list]
# [(2, 1), (4, 3), (6, 5), (8, 7), (0, 9)]
试试看:

my_old_list = [(1,2),(3,4),(5,6),(7,8),(9,0)]

for i in range(len(my_old_list)) :
    my_old_list[i] = my_old_list[i][::-1]

print(my_old_list)

由于元组是不可变的,所以无法在适当的位置反转元组。创建副本需要更多空间来容纳所有现有图元。因此,这会耗尽内存。
[(b,a)for(a,b)in my_old_list]
更好:
lambda tup:tup[:-1]
支持任意长度的元组更好:
sub[:-1]
支持任意长度的元组