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

时间:2015-01-01 06:11:54

标签: list sorting python-3.x

我有一个清单:

  

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的

2 个答案:

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