gpt4 book ai didi

python - python 中的集合不区分大小写

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:13 24 4
gpt4 key购买 nike

我有一个从多个列表生成的列表。此组合列表包含最终用户生成的名称。因此包含相似的名称,但具有不同的大写/小写字符。我想过滤掉包含相同字符的名称,只保留原始列表中找到的第一个。

例如,我有以下列表:

L0 = ['A_B Cdef', 'A_B Cdef', 'A_B Cdef', 'A_B CdEF', 'A_B CDEF','a_B CdEF', 'A_b CDEF', 'GG_ooo', 'a1-23456']

如果我运行:

L1 = list(set(L0))

我得到:

['a1-23456', 'A_B Cdef', 'A_B CdEF', 'A_B CDEF', 'a_B CdEF', 'A_b CDEF', 'GG_ooo']

我只想保留第一个具有相同字符的名称。

所以我的结果是:

['a1-23456', 'A_B Cdef', 'GG_ooo']

如果我使用 .lower().upper() 我会得到列表,但名称是小写/大写的。

我只想消除“重复项”而不考虑区分大小写的方法。

非常感谢帮助。

谢谢!

最佳答案

您可以使用集合跟踪值的 .lower() 版本,然后如果它们的 .lower() 版本不是,则将原始值附加到新列表' 已经在集合中:

s = set()
L = []
for x in L0:
if x.lower() not in s:
s.add(x.lower())
L.append(x)

print(L)
# ['A_B Cdef', 'GG_ooo', 'a1-23456']

关于python - python 中的集合不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45105872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com