我有一个查询,给出的结果如下。
abc=[(1531,), (4325,), (9204,)]
如何将其转换为以下列表?
def=['1531','4325','9204']
我将始终使用整数而不是字符串作为结果。
答案 0 :(得分:1)
import itertools
abc=[(1531,), (4325,), (9204,)]
print( list(map(str, itertools.chain.from_iterable(abc))) )
输出:
['1531', '4325', '9204']
itertools.chain.from_iterable
将列表弄平map
将列表中的所有元素转换为str 答案 1 :(得分:1)
我不明白,使用循环是如此简单。为什么用其他复杂的东西?
abc = [(1531,), (4325,), (9204,)]
def_ = []
for i in abc:
def_.append(str(i[0]))
print(def_)
答案 2 :(得分:0)
使用迭代器:
from operator import itemgetter
print(list(map(itemgetter(0), abc)))
具有列表理解功能:
print([i[0] for i in abc])
两个输出:
[1531, 4325, 9204]
答案 3 :(得分:0)
使用itertools
-
import itertools
abc = list(itertools.chain.from_iterable(abc))
使用列表理解-
[i for x in abc for i in x]
答案 4 :(得分:0)
只需使用常规列表理解
>>> abc = [(1531,), (4325,), (9204,)]
>>> dfg = [val for items in abc for val in items]
>>> dfg
[1531, 4325, 9204]
如果查询结果的大小太大,请考虑使用itertools.chain
>>> from itertools import chain
>>> list(chain(*abc))
[1531, 4325, 9204]