You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除Python列表中大小写不同的重复元素

Python 列表大小写不敏感去重解决方案

你的原有代码仅做精确字符串匹配,因此大小写不同的重复元素会被识别为不同值。你可以通过统一转为小写/大写做匹配判断实现需求,同时支持保留首次出现元素的原有大小写格式。

方案1:遍历+辅助集合(最优,兼容所有Python版本,时间复杂度O(n))

使用集合存储已经出现过的小写字符串,遍历过程中判断后留存符合要求的元素:

li = ['Peter', 'PETER', 'peter', 'John', 'JOHN', 'Mary']
seen = set()
out = []
for item in li:
    item_lower = item.lower()
    if item_lower not in seen:
        seen.add(item_lower)
        out.append(item)

执行后out的结果为['Peter', 'John', 'Mary'],完全符合预期。

注意:你原有的[out.append(x) for x in li if x not in out]写法属于利用列表推导式的副作用操作,会生成无意义的None元素列表浪费内存,属于不推荐的编码实践,建议用显式循环替代。

方案2:字典推导式(Python 3.7+支持顺序保留)

Python 3.7及以上版本字典默认保留插入顺序,可以通过字典键天然去重的特性简化写法:

out = list({item.lower(): item for item in li}.values())

该写法效果和方案1完全一致,代码更简洁。

内容的提问来源于stack exchange,提问作者Stanislav Jirak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 10:06:04