在 Python 中将列表转换为集合!我究竟做错了什么?

mHC*_*111 2 python list set python-3.x

我用随机字母(大写和小写)创建了一个列表。我正在尝试编写代码,因此它只打印考虑大写和小写的唯一值。例如, ["A","a","a","B","b"] 将打印 ["a","b"]

到目前为止,这是我的代码:

List_1 = ["a","a","a","b","A","b", "B", "c", "C"]
for x in List_1:
    l = x.lower()
    myset = set(l)
    print(myset)
Run Code Online (Sandbox Code Playgroud)

&这里是输出:

{'a'}
{'a'}
{'a'}
{'b'}
{'a'}
{'b'}
{'b'}
{'c'}
{'c'}
Run Code Online (Sandbox Code Playgroud)

现在我通过一个集合打印这些值,为什么它仍然打印重复的值?我究竟做错了什么?

mkr*_*er1 6

你在每次循环迭代中创建一个新集合是错误的。

代替

myset = set(l)
Run Code Online (Sandbox Code Playgroud)

你想用

myset.add(l)
Run Code Online (Sandbox Code Playgroud)

myset = set()在循环之前初始化。

或者,您可以用集合理解替换整个循环:

myset = {x.lower() for x in List_1}
Run Code Online (Sandbox Code Playgroud)