列表推导式不起作用

9 浏览
0 Comments

列表推导式不起作用

我想将一个列表中的独特项放入另一个列表中,即消除重复项。当我使用较长的方法时,我能够完成,例如:\n

>>>new_list = []
>>>a = ['It', 'is', 'the', 'east', 'and', 'Juliet', 'is', 'the', 'sun']
>>> for word in a:
    if word not in a:
        new_list.append(word)
>>> new_list
['It', 'is', 'the', 'east', 'and', 'Juliet', 'sun']

\n但是当我尝试使用列表推导在一行中完成这个任务时,每次迭代返回值\"None\":\n

>>> new_list = []
>>> a = ['It', 'is', 'the', 'east', 'and', 'Juliet', 'is', 'the', 'sun']
>>> new_list = [new_list.append(word) for word in a if word not in new_list]

\n请问有人可以帮助理解列表推导中出现了什么问题吗?\n提前感谢。\nUmesh

0
0 Comments

问题:为什么列表推导式不能正常工作?

原因:列表推导式不能保持元素的顺序,如果顺序对结果很重要,使用列表推导式可能会导致错误的结果。

解决方法:可以使用set()来创建一个唯一的单词列表,如果顺序不重要的话。如果顺序很重要,可以使用循环遍历列表的方式来创建一个新的列表,如下所示:

new_list = []
for word in a:
    if not word in new_list:
        new_list.append(word)

0
0 Comments

问题是“List comprehension not working”,即列表推导式不起作用。出现这个问题的原因是在使用列表推导式时,期望得到的结果是一个去重后的列表,但实际上得到的结果是包含重复元素的列表。

解决方法一是使用append()方法,将不重复的元素添加到一个新列表中。但是append()方法返回的是None,所以最后得到的结果列表中会包含多个None元素。

解决方法二是使用set来去除重复元素。将列表转换为集合,集合会自动去除重复元素,然后再将集合转换回列表。

以上是关于“List comprehension not working”问题的原因和解决方法的整理。

0