gpt4 book ai didi

python - 将字符串列表转换为 int

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:52 26 4
gpt4 key购买 nike

我有一个要转换为 int 的字符串列表,或者从一开始就有 int 。

任务是从文本中提取数字(并得出总和)。我所做的是这样的:

for line in handle:
line = line.rstrip()
z = re.findall("\d+",line)
if len(z)>0:
lst.append(z)
print (z)

这给了我一个类似 [['5382', '1399', '3534'], ['1908', '8123', '2857'] 的列表。我尝试了 map(int,... 和另一件事,但我收到错误,例如:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

最佳答案

您可以使用列表理解:

>>> [[int(x) for x in sublist] for sublist in lst]
[[5382, 1399, 3534], [1908, 8123, 2857]]

或 map

>>> [map(int, sublist) for sublist in lst]
[[5382, 1399, 3534], [1908, 8123, 2857]]

或者只是改变你的线路

lst.append(z)

lst.append(map(int, z))

您的 map 不起作用的原因是您尝试将 int 应用于列表列表的每个列表,而不是每个子列表的每个元素。

针对 Python3 用户的更新:

在Python3中,map将返回一个 map 对象,您必须手动将其转换回列表,即list(map(int, z))而不是map(int, z).

关于python - 将字符串列表转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57699946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com