如何在 for 循环中不打印 "empty" 列表 - Python

How to not print "empty" list in for loop - Python

下面的列表是我的代码输出的一个片段,你可以看到它在最后打印了 3 次 [],我想弄清楚,如何摆脱它们。

我试过在list comprehension末尾组合"if not [], 0, '', "", element,但好像没有影响。

输出它的代码:

list = [element.lower() for element in newline.split()]

输出:

['do', 'ordain', 'and', 'establish', 'this', 'constitution', 'for', 'the', 'united', 'states', 'of']
['america.']
[]
[]
[]

编辑:

    input_name = "file.txt"
    inputFile = open(input_name,"r")

    for element in input_name:
        #Reads input
        line = inputFile.readline()
        #Removes newline using slice
        newline = line[:-1] 
        #converts 
        list = [element.lower() for element in newline.split() if not '']
        print(list)

file.txt:

为美国颁布并制定这部宪法 美国。

文件是一段文字

出现此问题是因为您出于某种未知原因像这样循环:

for element in input_name:
    ..

因为 input_name 是一个字符串,所以这是循环遍历字符串中的字符,这意味着您尝试读取八行(一行用于 每个字符 字符串 file.txt)

input_name的长度与文件的长度无关……

我想你想要的是摆脱空列表,所以只判断列表本身。如果你在列表理解的末尾做一些事情,你只会影响列表中的元素。
如果列表为空如[],则为False

temp_list = [element.lower() for element in newline.split()]
if temp_list:
    print(temp_list)