比较不区分大小写列表的项目

Comparing items of case-insensitive list

所以我有两个列表,其中的项目在不同情况下。有些项目是相同的,但 lowercase/uppercase。我如何创建一个循环 运行 通过所有项目并对每个项目做一些事情,这也忽略了项目可能有什么情况?

fruits = ['Apple','banana','Kiwi','melon']
fruits_add = ['apple','Banana','KIWI','strawberry']

我想创建一个循环,遍历 fruits_add 中的每个项目并将其添加到 fruits,如果该项目不在 fruits 中。但是,'apple''Apple' 之类的项目需要算作同一项目。

我了解如何将单个项目转换为不同的案例以及如何检查一个特定项目是否与另一项相同(忽略大小写)。我不知道如何创建一个只对所有项目执行此操作的循环。

找到其他语言的类似问题的答案,但 Python 3.

我的尝试:

for fruit.lower() in fruits_add:
    if fruit in fruits:
        print("already in list")

这给了我一个错误:

SyntaxError: can't assign to function call

我也试过在比较列表之前将每个列表中的每个项目都转换为小写,但这也不起作用。

我不会在那里使用 lower() 函数。 像这样使用较低的:

for fruit in fruits_add:
    if fruit.lower() in fruits:
        print("already in list")
for 循环中的

fruit.lower() 不会像错误消息所暗示的那样工作,您不能分配给函数调用..

你可以做的是创建一个辅助结构(这里是set)来保存fruits中现有水果的小写项,并且appendfruits 如果 fruit_add 中的 fruit.lower() 不在 t 集合中(包含来自 fruits 的小写水果):

t = {i.lower() for i in fruits}
for fruit in fruits_add:
    if fruit.lower() not in t:
        fruits.append(fruit)

fruits 现在是:

print(fruits)
['Apple', 'banana', 'Kiwi', 'melon', 'strawberry']