在处理stdin
之后的值时,我在python程序中得到以下列表:
[['92', '022'], ['82', '12'], ['77', '13']]
我正在尝试将值设为:
[[92, 22], [82, 12], [77, 13]]
我尝试map
值,但发现错误:
print map(int, s)
Traceback (most recent call last):
File "C:/Users/lenovo-pc/PycharmProjects/untitled11/order string.py", line 13, in <module>
print map(int, s)
TypeError: int() argument must be a string or a number, not 'list'
s
是我的清单。
请注意,建议我将str列表转换为整数的优化方法是什么。
答案 0 :(得分:2)
简单list comprehension
:
>>> [ list(map(int,ele)) for ele in l ]
#driver values:
IN : l = [['92', '022'], ['82', '12'], ['77', '13']]
OUT : [[92, 22], [82, 12], [77, 13]]
错误:
抛出TypeError:int()参数必须是字符串或数字,而不是&#39; list&#39;
,因为map
函数在松散意义上接受平坦的可迭代或列表/ 1D列表。由于您要向它发送一个多维列表,它会遍历子列表并尝试对它们应用该函数,从而抛出错误。
map(function, iterable, ...)
可迭代参数可以是序列或任何可迭代对象;结果总是一个列表。