将嵌套列表项更改为整数格式

时间:2017-09-25 09:45:54

标签: python regex list nested

如何在数字末尾过滤或删除.0?我尝试将它们转换为整数,但列表不允许这样做。正则表达式是我最好的选择吗?我不需要用数字做任何数学运算。我只需要删除最后的.0。 欢迎所有人。

Nums  = [['17001.0', '17001.0'], ['17001.0', '11001.0'], ['17001.0', '18001.0'], ['17001.0', '19001.0'],
     ['14001.0', '12001.0'], ['19001.0', '18001.0'], ['19001.0', '16001.0'], ['15001.0'], ['16001.0'],
     ['18001.0'], ['19001.0'], ['18001.0'], ['22.0'], ['22.0'], ['22.0'], ['19001.0']]

3 个答案:

答案 0 :(得分:1)

如果您希望list包含integer元素,那么这可能会对您有所帮助:

Nums = [['17001.0', '17001.0'], ['17001.0', '11001.0'], ['17001.0', '18001.0']]
a=[]
for c in Nums:
    if len(c)>1:
        for d in c:
            a.append(int(float(d)))
    else:
        a.append(int(float(c)))

# a= [17001, 17001, 17001, 11001, 17001, 18001]

答案 1 :(得分:1)

我相信这是最简单的方法:

nozeros = []
for i in Nums:
    nozeros.append([int(j.split('.')[0]) for j in i])

答案 2 :(得分:0)

  

我尝试将它们转换为整数byt list not not that that

那是完全错误的:

IntNums = []
for lst in Nums:
    IntLst = []
    for n in lst:
        IntLst.append(int(float(n)))
    IntNums.append(IntLst)

您无法将字符串转换为整数,因为它们包含“.0”后缀,但您可以先将它们转换为浮点数再转换为整数。

如果要转换列表,请使用索引进行迭代:

for i in range(len(Nums)):
    for j in range(len(Nums[i])):
        Nums[i][j] = int(float(Nums[i][j]))

你也可以使用列表理解:

Nums = [[int(float(n)) for n in lst] for lst in Nums]