通过列表列表进行python迭代

时间:2019-04-09 06:17:13

标签: python python-3.x

我有一个包含以下元素的列表:

[[('433318', 0.7064461851335214), ('433363', 0.6709502341952089)],
 [('433395', 0.6988424611161282), ('433400', 0.6794787567547861)],
 [('433395', 0.6871546406771576), ('433363', 0.653218445986381)]]

现在我想将元素检索到新列表b中,该列表将具有

['433318','433363','433395','433400','433395','433363']

a[0][0][0] gives ‘433318’
a[0][1][0] gives ‘433363’

但是我正在寻找一种通用的方法(可能在一个遍历整个列表的循环中)并给我想要的结果?

2 个答案:

答案 0 :(得分:4)

使用列表理解:

l = [[('433318', 0.7064461851335214), ('433363', 0.6709502341952089)],
[('433395', 0.6988424611161282), ('433400', 0.6794787567547861)],
[('433395', 0.6871546406771576), ('433363', 0.653218445986381)]]

[y[0] for x in l for y in x]

答案 1 :(得分:2)

最好使用列表理解,但了解常规循环版本的外观可能会有所帮助:

my_list = [[('433318', 0.7064461851335214), ('433363', 0.6709502341952089)],
[('433395', 0.6988424611161282), ('433400', 0.6794787567547861)],
[('433395', 0.6871546406771576), ('433363', 0.653218445986381)]]

result = []
for inner_list in my_list:
    for inner_tuple in inner_list:
        result.append(inner_tuple[0])