在python的嵌套列表中将每个元素从string转换为int [duplicate]

oalqel3c  于 2023-04-04  发布在  Python
关注(0)|答案(2)|浏览(106)

此问题在此处已有答案

ValueError: invalid literal for int() with base 10: ''(15个答案)
5年前关闭。
我在Python中有一个嵌套列表的数据,其中一部分看起来像:

data = [['214', '205', '0', '14', '710', '1813494849', '0'], ['214', '204', '0', '30', '710', '1813494856', '0'], ['214', '204', '0', '34', '710', '1813494863', '0'], ['213', '204', '0', '35', '710', '1813494870', '0'], ['213', '203', '0', '35', '710', '1813494877', '0']]

使用couple方法转换数据时:
1.

new_data_list = [[int(x) for x in list] for list in data]
list=[]
  for i in range(0,len(data)):
      list.append([])
      for j in range(0,len(data[i])):
          b=int(data[i][j])
          list[i].append(b)

我得到的错误是:

> ValueError: invalid literal for int() with base 10: ''

在我的数据列表中没有非数字数据。但是可能有一些与标题有关的东西,比如一个空的标题被视为非数字值,因为我已经从csv创建了一个数据列表。
我想知道一种有效的方法,可以将列表中的每个元素转换为int,同时保持数据多列表。

zynd9foi

zynd9foi1#

为每个嵌套列表中的每个项目调用int

new_list = [[int(x) for x in lst] for lst in nested]

或者使用map

new_list = [list(map(int, lst)) for lst in nested]
trnvg8h3

trnvg8h32#

一个简洁的例子是:

x = ['123', '12', '5']
r = list(map(int, x))
print(r)
>[123, 12, 5]

相关问题