长列表,其中包含许多长列表

时间:2018-06-22 12:26:39

标签: python

我有这个long类型的变量,它是long的列表:

print(list_id)
[6L]
[6L]
[6L]
[6L]
[7L]

如何将此列表转换为类似的内容:

list_id = [6, 6, 6, 6, 7]

我做了这样的事情:

list_orgs_id = []
for i in list_id[0]:
    list_orgs_id.append(i)
print(list_orgs_id)

但它说:

TypeError: 'long' object is not iterable

3 个答案:

答案 0 :(得分:1)

您可以使用int()将它们转换为整数。

list_id = [[6L], [6L], [6L], [6L], [7L]]
int_id = [int(i[0]) for i in list_id]
print(int_id)

输出:

[6, 6, 6, 6, 7]

端子输出:

Python 2.7.10 (default, Oct  6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> list_id = [[6L], [6L], [6L], [6L], [7L]]
>>> int_id = [int(i[0]) for i in list_id]
>>> print(int_id)
[6, 6, 6, 6, 7]
>>>

答案 1 :(得分:1)

您想要这样吗?只需使用list comprehension

main_list = [[1,2,3],[2,3,4]]
list_id=[j for i in main_list for j in i]
print(list_id)

输出:

[1, 2, 3, 2, 3, 4]

答案 2 :(得分:0)

方法1

您可以将<br>应用于列表列表中的所有元素:

int()

方法2

您还可以选择将其写成精美的列表理解

for x in range(len(list_id)):
    list_id[x] = int(list_id[x][0])

在这种情况下,您必须迭代list_id = [int(y) for x in list_id for y in x] 内的所有列表,并且在每次迭代过程中,都将迭代这些列表内的长整数。这类似于:

list_id

方法3

如果需要,可以编写一个用户定义的函数,然后使用temp = [] for x in list_id: for y in x: temp.append(int(x)) list_id = temp 函数将其应用于map()的所有元素上:

list_id