Python 已将嵌套列表项更改为整数格式
如何筛选或删除号码末尾的.0?我尝试将它们转换为整数,但列表不允许这样。regex是我最好的选择吗?我不需要对这些数字做任何数学运算。我只需要删除结尾处的.0。 欢迎大家帮忙Python 已将嵌套列表项更改为整数格式,python,regex,list,nested,Python,Regex,List,Nested,如何筛选或删除号码末尾的.0?我尝试将它们转换为整数,但列表不允许这样。regex是我最好的选择吗?我不需要对这些数字做任何数学运算。我只需要删除结尾处的.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'], ['19
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']]
我试着用列表把它们转换成整数,别这样
这是完全错误的:
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]
如果希望列表包含整数元素,则这可能会帮助您:
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]
我相信这是最简单的方法:
nozeros = []
for i in Nums:
nozeros.append([int(j.split('.')[0]) for j in i])
您可以在循环中迭代,并将其转换为int as=>intfloat'17001.0'子字符串、正则表达式和双转换。字符串运算测试是否为点。您可能不知道如何在列表上执行基本操作,也可能不想找到最有效的解决方案。在这两种情况下,你都应该用你已经尝试过的东西。如果不进行测试,你就无法找到最好的解决方案,那么为什么不在脑海中标出每个可行的解决方案。这与我发布的有什么不同?@MarkWeston我认为这是另一种简单的方法。