列表删除重复项

时间:2019-11-27 09:37:17

标签: python-3.x list duplicates uppercase

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)

2 个答案:

答案 0 :(得分:0)

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

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

输出:[“ a”,“ b”,“ c”]

答案 1 :(得分:0)

首先,您甚至没有保存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))