将嵌套的for循环转换为列表理解

时间:2018-12-03 17:33:28

标签: python list list-comprehension

我为这样的循环代码制作了

all = []
for sen_list in sen_lists:
    te = []
    for ele in sen_list:
        boolean = ele == "."
        te.append(boolean)
    all.append(te)

sen_lists = [['a', 'b', 'c', 'd', '.', '.'], ['e', 'f', 'g', 'h']]

上部代码很好用...但是我想转换列表理解代码。

我这样尝试:

[ele == "." for sen_list in rawdf.TEXT[:10] for ele in sen_list]

但是此代码不起作用。

请让我知道。谢谢。

2 个答案:

答案 0 :(得分:4)

考虑一个嵌套列表理解。或者换句话说,是列表理解的列表理解

内部循环代表您内部的for循环。最外面的一个代表您的外部for循环。

sen_lists = [['a', 'b', 'c', 'd', '.', '.'], ['e', 'f', 'g', 'h']]

res = [[ele == "." for ele in sen_list] for sen_list in sen_lists]

# [[False, False, False, False, True, True], [False, False, False, False]]

答案 1 :(得分:1)

您需要将布尔逻辑包装在[]中,以便boolean =知道它应该相等。

boolean = [ele == '.']

我不知道在一行上全部完成的逻辑,就像您要在问题末尾尝试做的那样。