我有一个清单:
alist = [(' A'' 1'&#39 2'' DEF&#39),(' B',& #39; 100' 11'' XYZ&#39),(' C'' 6'' 9&#39 ;,' ABC&#39)]
我希望在第2和第3个元素上对列表进行排序,但在此之前我想将这些元素的类型从字符串转换为整数。我怎么能以大多数蟒蛇的方式这样做?
我知道我可以读取列表,将元素转换为整数,将所有元素添加到新列表中,最后排序:
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)转换为整数类型,该怎么办?
Bade的
答案 0 :(得分:2)
如果您只想对它们进行排序,则无需转换它们:
alist.sort(key=lambda x: (int(x[1]), int(x[2])))
...
newList = sorted(alist, key=lambda x: (int(x[1]), int(x[2])))
答案 1 :(得分:0)
如果我理解了这个问题,你真的想按键对元组进行排序,需要将其转换为整数。
我愿意
sorted_list = sorted(alist, key=lambda tup: int(tup[1]))