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

Python3 - Change the type of specific list elements

我有一个列表:

alist = [('A','1','2','DEF'),('B','100,'11','XYZ'),('C','6','9','ABC')]

我想根据第二个和第三个元素对列表进行排序,但在我这样做之前,我想将这些元素的类型从字符串转换为整数。我怎样才能以最 pythonic 的方式做到这一点?

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

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])))

...

newList = sorted(alist, key=lambda x: (int(x[1]), int(x[2])))

如果我理解问题,你真的想按键排序元组,需要转换为整数。

我愿意

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