列出删除重复项

List remove duplicates

for循环中有一个函数可以删除所有重复项,但它没有。 .upper 有时也不起作用。请帮忙。

from collections import OrderedDict
def ask():
  global x
  x = str(input("Enter your logical operation:"))
  x = x.split( )
  x = [x.upper() for x in x]
  return x

ask()

for i in range(0,len(x)):
  and_index = x.index("AND",i)
  n = list(OrderedDict.fromkeys(str(and_index)))
  print(n)

print(n)

从列表中删除重复项的示例

mylist = ["a", "b", "c", "a", "b"]
newlist = list(set(mylist))
print(newlist)

输出:["a"、"b"、"c"]

首先,您甚至没有保存 ask() 函数的输出,而是在全球范围内提供它,这不是一个好的做法。

def ask():
  x = input("Enter your logical operation:")
  return list(map(str.upper, x.split()))

user_input = ask()

然后,为了简单地删除重复项,您可以将 list 转换为 set,这样做会破坏我们列表的顺序,但会快速轻松地删除重复项

user_input = list(set(user_input))

如果您想保留用户输入的操作顺序,您可以使用 OrderedDict

from collections import OrderedDict
user_input = list(OrderedDict.fromkeys(user_input))