gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 20:13:43 25 4
gpt4 key购买 nike

执行以下不区分大小写的交集的最佳方法是什么:

a1 = ['Disney', 'Fox']
a2 = ['paramount', 'fox']
a1.intersection(a2)
> ['fox']

通常我会做一个列表理解来将两者都转换为全部小写:

>>> set([_.lower() for _ in a1]).intersection(set([_.lower() for _ in a2]))
set(['fox'])

但是有点丑。有更好的方法吗?

最佳答案

使用集合理解语法稍微不那么难看:

>>> {str.casefold(x) for x in a1} & {str.casefold(x) for x in a2}
{'fox'}

算法是一样的,因为字符串的哈希值是区分大小写的,所以没有更有效的方法。

使用 str.casefold而不是 str.lower 将对国际数据表现得更正确,并且自 Python 3.3+ 起可用。

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

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