2024-09-29 21:33:39 发布
网友
list1=['fire'、'cats'、'mats'、'wats'、'mire'、'tire']
我想根据每个单词的最后3个字母把这些单词分成几组,然后存到字典里。你知道吗
这可能吗?你知道吗
创建一个defaultdict,将list作为默认项,并附加项,使用string slice计算key,如下所示:
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']}
也可以使用一行程序来完成,但效率不高,因为内部的loo可以测试所有列表(一行程序很流行,但有时不是最好的解决方案):
d = {k:[v for v in list1 if v.endswith(k)] for k in set(x[-3:] for x in list1)}
如果您想过滤掉没有足够关联词的项,您可以这样做(在第一遍计算d之后):
d
d = {k:v for k,v in d.items() if len(v)>2}
如果有2个以上的元素,则创建一个只包含键/值的新字典。你知道吗
创建一个
defaultdict
,将list
作为默认项,并附加项,使用string slice计算key,如下所示:结果:
也可以使用一行程序来完成,但效率不高,因为内部的loo可以测试所有列表(一行程序很流行,但有时不是最好的解决方案):
结果:
如果您想过滤掉没有足够关联词的项,您可以这样做(在第一遍计算
d
之后):如果有2个以上的元素,则创建一个只包含键/值的新字典。你知道吗
相关问题 更多 >
编程相关推荐