想请教一下各位,我这样写列表生成式交换位置为什么不对?

img


假设已有列表lst=[(“triangle”,“shape”),(“red”,“color”),(“square”,“shape”),(“yellow”,“color”),(“green”,“color”),(“circle”,“shape”)],其中每个元素都是一个元组。元组中的每一个元素表示值,第二个元素表示标签。试编写程序,完成以下功能:
(1)将列表lst中的元素按照标签排序后输出。
(2)将所有的颜色值从列表lst中提取出来,存入列表lst_colors,并将该列表输出。

又仔细看了一下,才明白你的需求,你是想交换元组里的两个元素对吧?不需要赋值,写成s = [(i[1], i[0]) for i in lst] 就可以