使用python将查询结果转换为列表

时间:2018-07-13 07:24:52

标签: python python-3.x list

我有一个查询,给出的结果如下。

abc=[(1531,), (4325,), (9204,)]

如何将其转换为以下列表?

def=['1531','4325','9204']

我将始终使用整数而不是字符串作为结果。

5 个答案:

答案 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]