拆分单词并保存到词典?

2024-09-29 21:33:39 发布

您现在位置:Python中文网/ 问答频道 /正文

list1=['fire'、'cats'、'mats'、'wats'、'mire'、'tire']

我想根据每个单词的最后3个字母把这些单词分成几组,然后存到字典里。你知道吗

这可能吗?你知道吗


Tags: 字典字母单词firecatslist1tiremats
1条回答
网友
1楼 · 发布于 2024-09-29 21:33:39

创建一个defaultdict,将list作为默认项,并附加项,使用string slice计算key,如下所示:

import collections

list1 = ['fire', 'cats', 'mats', 'wats', 'mire', 'tire']

d=collections.defaultdict(list)
for i in list1:
    d[i[-3:]].append(i)

print(dict(d))  # copy in a dict just for clean display (no defaultdict prefix)

结果:

{'ire': ['fire', 'mire', 'tire'], 'ats': ['cats', 'mats', 'wats']}

也可以使用一行程序来完成,但效率不高,因为内部的loo可以测试所有列表(一行程序很流行,但有时不是最好的解决方案):

d = {k:[v for v in list1 if v.endswith(k)] for k in set(x[-3:] for x in list1)}

结果:

{'ire': ['fire', 'mire', 'tire'], 'ats': ['cats', 'mats', 'wats']}

如果您想过滤掉没有足够关联词的项,您可以这样做(在第一遍计算d之后):

d = {k:v for k,v in d.items() if len(v)>2}

如果有2个以上的元素,则创建一个只包含键/值的新字典。你知道吗

相关问题 更多 >

    热门问题