繁体   English   中英

如何从给定列表创建字典?

[英]How to create a dictionary from a given list?

我正在尝试从给定的列表中创建一个字典,知道该键将是该单词的第一个字母,并且具有相同首字母的那些将相应地添加到 1 个键。 请大家帮帮我好吗?

words= ['apple', 'bible','bird' ,'candy', 'day', 'elephant','friend']

一个更pythonic的解决方案:

import collections

words= ['apple', 'bible','bird' ,'candy', 'day', 'elephant','friend']

d = collections.defaultdict(list)

for w in words:
    d[w[0]].append(w)

d = dict(d)

Output

{
    "a": ["apple"],
    "b": ["bible", "bird"],
    "c": ["candy"],
    "d": ["day"],
    "e": ["elephant"],
    "f": ["friend"],
}
words= ['apple', 'bible','bird' ,'candy', 'day', 'elephant','friend']

def make_dict(words):
    di = {}
    for item in words:
        if item[0] in di:
            di[item[0]] += [item]
        else:
            di[item[0]] = [item]
    return di

只是另一种选择:

from collections import defaultdict

words = ['apple', 'bible','bird' ,'candy', 'day', 'elephant','friend']

word_dict = defaultdict(lambda: [])

list(map(lambda word: word_dict[word[0]].append(word), words))

print(dict(word_dict))

结果是:

{'a': ['apple'], 'b': ['bible', 'bird'], 'c': ['candy'], 'd': ['day'], 'e': ['elephant'], 'f': ['friend']}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM