List Python3-更改特定列表元素的类型

List Python3-更改特定列表元素的类型,list,sorting,python-3.x,List,Sorting,Python 3.x,我有一份清单: 主义者= [(‘A’、‘1’、‘2’、‘DEF’)、(‘B’、‘100’、‘11’、‘XYZ’、(‘C’、‘6’、‘9’、‘ABC’)] 我想对第二个和第三个元素的列表进行排序,但在排序之前,我想将这些元素的类型从string转换为integer。我怎样才能用最像蟒蛇的方式做到这一点 我知道我可以读取列表,将元素转换为整数,将所有元素添加到新列表,最后排序: newList = [] for i in alist: a,b,c,d, = i newList.appen

我有一份清单:

主义者= [(‘A’、‘1’、‘2’、‘DEF’)、(‘B’、‘100’、‘11’、‘XYZ’、(‘C’、‘6’、‘9’、‘ABC’)]

我想对第二个和第三个元素的列表进行排序,但在排序之前,我想将这些元素的类型从string转换为integer。我怎样才能用最像蟒蛇的方式做到这一点

我知道我可以读取列表,将元素转换为整数,将所有元素添加到新列表,最后排序:

newList = []
for i in alist:
   a,b,c,d, = i
   newList.append((a,int(b),int(c),d))

newList.sort(key=itemgetter(1,2))
但如果我的列表中的每个元组有100个元素(上面的列表只有4个),而我只想将其中的一些元素(如上面的列表中的-b和c)转换为整数类型,该怎么办


添加

如果您只想对它们进行排序,则无需转换它们:

alist.sort(key=lambda x: (int(x[1]), int(x[2])))


如果我接受这个问题,您真的希望按键对元组排序,这需要转换为整数

我愿意

sorted_list = sorted(alist, key=lambda tup: int(tup[1]))

C#的
Select
等价物是
map
对吗?或者类似的东西。为什么不使用它在初始列表上构建一个生成器,并在需要em时让Python处理转换。我想Ignacio的答案更正确,因为它不仅按第二个元素排序,而且按请求按第二和第三个元素排序。获取错误:parsed.sort(key=lambda k:(int(-k[9]),int(k[14]))TypeError:一元数-:'的操作数类型错误,请先转换strConvert,然后求反<代码>-int(…)
sorted_list = sorted(alist, key=lambda tup: int(tup[1]))