gpt4 book ai didi

python - 如何使用 Python 测试唯一字符串和重复字符串(不同大小写)

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:44 27 4
gpt4 key购买 nike

我有一个问题需要解决,这对你们大多数人来说可能相当容易,但事实证明对我来说有点困难,因为我以前没有做过这种比较。以下是我正在解析的 XML 文件的一部分。我得到了一个字符串列表(NAME 的文本),我想确定一些事情。首先,我想看看我得到的名字是否唯一。其次,我想知道是否有重名(同名但大小写不同)。解决这个问题的最佳方法是什么?我不希望列表太大。这是我的 XML 片段和当前代码:

    <actions>
<action>
<name>Action_1</name>
</action>
<action>
<name>action_1</name>
</action>
<action>
<name>Action_2</name>
</action>
<action>
<name>ACTION_2</name>
</action>
</actions>

action = elementTree.findall('./actions/action')
nameList = []

# Get the list of actions and stuff them in a list for further comparison.
for a in action:
for child in a:
if child.tag == 'name':
nameList.append(child.text)
print child.text

输出如下:

Action_1
action_1
Action_2
ACTION_2

再一次,我只需要确定我返回的字符串 (name.text) 是否唯一。其次,我想知道是否有重名(同名但大小写不同)。

最佳答案

from collections import defaultdict, Counter
d1 = Counter()
d2 = defaultdict(set)
# count appearence of entries
for x in nameList:
d1[x] += 1
d2[x.lower()].add(x)

# dupes are
for k,v in d1.iteritems():
if v>1: print k

# different appearance of name
for k,v in d2.iteritems():
if len(v) > 1: print k

如果您有一个……长……列表,请查看布隆过滤器。

关于python - 如何使用 Python 测试唯一字符串和重复字符串(不同大小写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21943816/

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