我有一个1550500个数字的列表,所有的数字都有引号。 示例:list('100','150','200','250')等。。。 我需要求所有数字的和,但在此之前我需要把它转换成INT
列表名称:行程列表
我的代码:
mean_tripstr = str(trip_list)
mean_trip = [int(x) for x in mean_tripstr]
print(type(mean_trip))
错误消息:
Traceback (most recent call last):
File "projeto1.py", line 235, in <module>
mean_trip = [int(x) for x in mean_tripstr]
File "projeto1.py", line 235, in <listcomp>
mean_trip = [int(x) for x in mean_tripstr]
ValueError: invalid literal for int() with base 10: '['
我做错什么了?我是新的编码。。。你知道吗
必须将每个元素转换为
int
:上面的代码使用了
generator
,当您只需在列表中迭代时,这种方法更有效。最后一行再次正确转换为列表。你知道吗但是,如你所说,如果你已经有一个字符串列表,你可以做:
如果你知道
numpy
,你也可以这样做:Python有一个map函数,它接受一个函数和一个iterable。还有sum函数,它返回iterable的和。你知道吗
您可以使用:
请注意,map函数不返回列表,而是返回生成器。要将其转换为列表,请使用
(这可能需要一段时间,因为它需要遍历整个列表,而您的列表相当长)。你知道吗
代码的错误是将列表转换为字符串
因此,当您尝试迭代字符串时,第一个
x
是[
,它不是一个数字(因此是异常)。你知道吗作为旁注,使用
list(map(int, a_list))
比[int(i) for i in a_list]
快相关问题 更多 >
编程相关推荐