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]))
我有一个列表:
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]))