拆分并保存到字典?

时间:2016-11-21 19:18:27

标签: python python-2.7

list1 = [' fire',' cats',' mats',' wats',' mire' ,'轮胎']

我想根据每个单词的最后3个字母将这些单词分开,并将其保存到字典中。

这可能吗?

1 个答案:

答案 0 :(得分:2)

使用defaultdict作为默认项创建list,并使用字符串切片附加项目,计算密钥,如下所示:

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']}

也可以使用单行,但不是那么高效,因为内部厕所测试所有列表(单行是时髦的,但有时不是最好的解决方案):

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个元素,则创建一个只包含键/值的新词典。