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]
支持任意长度的元组