【发布时间】:2020-04-01 22:37:17
【问题描述】:
我正在使用 Python 3.7。如何构建一个 set(),其元素是字符串,不区分大小写?也就是说,如果我尝试了这些操作...
s = caseInsensitiveSet()
s.add("ABC")
s.add("abc")
结果将是一组大小为 one 的集合,其中包含唯一的元素“ABC”。
【问题讨论】:
-
您将失去其原始形式的状态。
-
请在问题中阐明该要求。
-
你真的想要一个集合,其中
"abc" in s和"ABC" in s都为真,不管"abc"或"ABC"是集合中的实际元素吗? -
这很棘手,因为该集合并不能真正控制两个值如何被视为相等;这取决于所存储的项目。您需要定义一个新的字符串类型,它在计算哈希值和比较两个字符串是否相等时忽略大小写,或者定义一个全新的集合类型,它只适用于字符串并负责哈希本身。
标签: python-3.x string set case-insensitive