如何让我的程序不重复添加到我的列表?蟒蛇

时间:2011-12-01 02:08:34

标签: python

我需要我的python程序不在列表中添加相同的字母。没有重复。这是我目前的代码:

common = []
for letter in first and last:
  if letter  in first and last:
    common.append(letter)
print common
编辑:好的,我这样做了,似乎有效。

for letter in first and last:
    if letter  in first and last and not common:

编辑:对不起,必须使用“LISTS”

2 个答案:

答案 0 :(得分:2)

Python不懂语言逻辑。告诉口译员完全你的意思:

if (letter in first) and (letter in last) and (letter not in common):

答案 1 :(得分:0)

您是否需要列表与您在其中读取的顺序相同?一种方法是首先创建一个set对象,将所有内容添加到集合中,然后通过迭代集合来创建列表,将集合中的每个项目附加到列表中。如果对列表执行查找将花费O(n)时间(n =列表大小),而设置对象将花费O(1)时间。

我认为这样的事情对你有用。快速问题,首先是什么?为什么要检查“是否在第一个和最后一个字母” - 一个不能在一个for循环中迭代两个列表。如果你想做喜欢这个,那么首先将列表压缩在一起(zip(list1,list2))以创建元组列表,然后迭代这个压缩列表。

好像你想做这样的事情。

    # thank you user NullUserException
    common = list(set([letter for letter in listOfStuff]))

编辑 - 好的,然后解决O(n)查找时间。

    common = []
    for letter in listOfStuff:
      # if statement stolen from user Blender =D
      if (letter in first) and (letter in last) and (letter not in common):
        common.append(letter)
    print common