在Python中将内部值转换为列表的整数

时间:2017-11-11 14:12:47

标签: python python-2.7

在处理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列表转换为整数的优化方法是什么。

1 个答案:

答案 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, ...)

     

可迭代参数可以是序列或任何可迭代对象;结果总是一个列表。