将字符串列表转换为具有单独整数的列表时出错?

2024-09-24 00:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串li=['192 245 3 881250949'类型的列表

如果我打印li,它会显示

'196\t242\t3\t881250949'

如何获得单独整数形式的列表li

li=[192 245 3 881250949]即整数列表

我在使用地图时出错

results = list(map(int, li))

ValueError: invalid literal for int() with base 10: '196\t242\t3\t881250949'

有人能解释一下这一点并帮助转换列表吗


Tags: 字符串类型map列表地图整数liresults
3条回答

此代码可以帮助您。 首先,必须使用split()拆分字符串

然后可以使用mapfor loop将字符串转换为int

# with map

li=['192 245 3 881250949']
a=li[0].split(' ')

a = list(map(int,a))


# with for loop

li=['192 245 3 881250949']
a=li[0].split(' ')

for i in range (len(a)):
    a[i] = int(a[i])

由于int()无法转换包含非数字字符的字符串,因此您将获得ValueError。这里,字符串包含'\t',因此引发错误

将其转换为整数列表的一种简单方法是这样做(字符串包含以'\t'分隔的数字,然后使用'\t'而不是split()内的' '):

lst = list(map(int, li[0].split(' ')))

如果列表li中有多个这样的字符串,则可以使用循环来执行此任务。如果我能回答你的问题,请告诉我

您可以使用嵌套列表理解:

l=[int(el) for s in li for el in s.split()]
print(l)

输出:

[192, 245, 3, 881250949]

相关问题 更多 >