Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套列表中的列表理解_Python_List Comprehension_Nested Lists - Fatal编程技术网

Python 嵌套列表中的列表理解

Python 嵌套列表中的列表理解,python,list-comprehension,nested-lists,Python,List Comprehension,Nested Lists,我有一个类似于[[“foo”、[“a”、“b”、“c”]]、[“bar”、[“a”、“b”、“f”]]的列表 我想把它分开,这样我就可以计算出As、Bs等的总数。但是我对Python还不太熟悉,有点时间 我正在使用[lx for lx in[li[1]for li in fieldlist if li[1]]]尝试获取一个包含子列表中所有项目的列表,但它返回一个包含第一个子列表的列表([[“a”、“b”、“c”],[“a”、“b”、“f”]]而不是包含这些子列表内容的列表。我很确定我只是想错了,

我有一个类似于
[[“foo”、[“a”、“b”、“c”]]、[“bar”、[“a”、“b”、“f”]]的列表

我想把它分开,这样我就可以计算出As、Bs等的总数。但是我对Python还不太熟悉,有点时间

我正在使用
[lx for lx in[li[1]for li in fieldlist if li[1]]]
尝试获取一个包含子列表中所有项目的列表,但它返回一个包含第一个子列表的列表(
[[“a”、“b”、“c”],[“a”、“b”、“f”]]
而不是包含这些子列表内容的列表。我很确定我只是想错了,因为我不熟悉列表理解和Python

有人有好办法吗?(是的,我知道我选择的名字(lx,li)很可怕)


谢谢。

这将为您提供您想要的列表:

[lx for li in fieldlist for lx in li[1] if li[1]]
列表理解:

>>> s = [["foo", ["a", "b", "c"]], ["bar", ["a", "b", "f"]]]
>>> [x for y, z in s for x in z]
['a', 'b', 'c', 'a', 'b', 'f']
>>>

如果li[1]
,你的
的目的是什么?如果
li[1]
是一个空列表或其他容器,测试是多余的。否则,你应该编辑你的问题来解释它可能是什么。

Pythonic解决方案类似于:

>>> from collections import Counter
>>> Counter(v for (field, values) in fieldlist
...           for v in values)
Counter({'a': 2, 'b': 2, 'c': 1, 'f': 1})

太棒了。我知道我必须靠得很近,但我没意识到你可以像那样浏览多个列表。谢谢!这是我打印列表时留下的,我想跳过空列表。我不知道这是多余的。