我正在解析一些xml(使用Python 3.4代码),想要检索节点中的文本和id属性。例如:
然而,这并不是非常有效。文本可以是整个段落,使得键非常长。而id始终具有相对较短的长度(但仍然是str类型,例如一些字母后面跟着一些数字)。 但是,将ids作为键,将文本作为值需要对代码进行一些重写。这并不是非常麻烦,但这让我想知道:与像“ulp_887362487687678”这样的id键相比,将文本(可能是整个段落)作为键会有多么低效?
我可以创建两个反向字典(一个以id为键,另一个以文本为键)并比较构建和查找等。我还发现了一些关于键长度限制的主题(Do Dictionaries have a key length limit?)。但我只是想知道您对此的看法。在字典中拥有如此长的str键是绝对要避免的,还是不是非常大的问题? 如果您可以分享一些利弊,那就太好了!
<li id="12345"> Some text here </li>
我的当前代码仅围绕文本进行结构化(我现在正在添加id,但以前不需要它)。我正在循环遍历文本/句子列表,然后继续执行某些操作。因此,我考虑创建一个字典,将文本/句子作为键,将该id属性作为值。然而,这并不是非常有效。文本可以是整个段落,使得键非常长。而id始终具有相对较短的长度(但仍然是str类型,例如一些字母后面跟着一些数字)。 但是,将ids作为键,将文本作为值需要对代码进行一些重写。这并不是非常麻烦,但这让我想知道:与像“ulp_887362487687678”这样的id键相比,将文本(可能是整个段落)作为键会有多么低效?
我可以创建两个反向字典(一个以id为键,另一个以文本为键)并比较构建和查找等。我还发现了一些关于键长度限制的主题(Do Dictionaries have a key length limit?)。但我只是想知道您对此的看法。在字典中拥有如此长的str键是绝对要避免的,还是不是非常大的问题? 如果您可以分享一些利弊,那就太好了!
lookupkey.__eq__(storedkey)
),如果你的字符串足够大并且有一个很长的共同前缀,那么这个操作可能会很耗费资源。虽然这种情况并不常见,但理论上是有可能发生的。 - undefined