0

我正在尝试对i.find().text命令输出中的每个单词进行排序和计数,但是如果没有数组中的硬编码过滤器单词,我找不到一种方法。

使用的字符串:

from xml.etree import ElementTree as ET 

root = ET.fromstring(response.text)

data = root.findall('file.xml')

for i in data:
   print(i.find('file.xml/ssidname').text)

字符串的输出:

SSID1
SSID1
SSID1
SSID2
SSID3
SSID1
SSID3
SSID2
SSID2

例外的答案是:

SSID1: 4, SSID2: 3, SSID3: 2

我卡住了python 2.6.6,不能更新,所以不能使用使用计数器的想法。

如果您有任何提示,请在评论中告诉我。提前致谢。

4

1 回答 1

0

所以,我不知道哪些部分在 Python 2.6 中实际工作,但这是一个可能的解决方案:

text = '''SSID1
SSID1
SSID1
SSID2
SSID3
SSID1
SSID3
SSID2
SSID2'''


counter = {}
for line in text.split('\n'):
    counter[line] = counter.get(line, 0) + 1

final = dict(sorted(counter.items(), key=lambda x: x[1], reverse=True))
print(final)
于 2021-10-27T14:23:40.730 回答