如何只将一些嵌套列表的字符串转换为整数?

时间:2014-07-20 21:34:26

标签: python python-2.7 int nested-lists

所以目前我正在尝试使用数据嵌套列表并将这些列表的一些元素转换为整数。所以现在嵌套列表会打印出来:

def Top5_Bottom5_test():
    with open("Population.txt", "r") as in_file:
        nested = [line.strip().split(',') for line in in_file][1:] #This creates the nested list
        nested[0:][1:] = [int(x) for x in nested[0][1:]] #This is what I'm trying to use to make the numbers in the lists into integers.
        print nested

打印:

[['Alabama', '126', '79', '17'], ['Alaska', '21', '100', '10'], ['Arizona', '190', '59', '16'], ['Arkansas', '172', '49', '28']....]

但是我试图让它输出,所以我可以使用冒泡分类:

[['Alabama', 126, 79, 17], ['Alaska', 21, 100, 10], ['Arizona', 190, 59, 16], ['Arkansas', 172, 49, 28]....]

有了这个,我的结局就是按照第1个元素的顺序排列列表,但我们似乎无法以字符串的形式进行排序。试图避免使用sort()和sorted()函数。

1 个答案:

答案 0 :(得分:1)

试试这个:

nested = [line.strip().split(',') for line in in_file][1:]
nested = [line[:1] + [int(x) for x in line[1:]] for line in nested]

技巧是使用列表切片分别处理第一个元素和每行中的其余元素。