在字典中设置多个键/值(Python 2.72)

2 投票
5 回答
2266 浏览
提问于 2025-04-17 07:06

我有一个字符串的列表。我想创建一个字典,这个字典的键就是列表里的所有字符串(每个字符串当然都是一个键)。

接下来是值:每个键对应的值将是列表中紧跟在该键字符串后面的字符串。值的类型将是列表。

注意:最后一个字符串不会被包含在字典中。一个键在字典中不会出现两次。如果某个键有多个值,它们会被添加到该键现有值的列表中。顺序不重要(如果不排序能更简单地完成任务,那字典可以不排序)。

举个例子:

  • 对于这个列表:

    List = ['today','is','worm','and','dry']
    
  • 字典将会是:

    Dic={'today': ['is'], 'is': ['worm'],'worm': ['and'], 'and':['dry']}
    

谢谢,

5 个回答

0

虽然效果不是很好,但它能正常工作。

>>> List = ['today','is','worm','and','dry']
>>> Dic ={}
>>> key = None
>>> for item in List:
...     if key:
...         Dic.update({key:item})
...     key=item
... 
>>> Dic
{'and': 'dry', 'is': 'worm', 'worm': 'and', 'today': 'is'}
>>> 
0

(基于@eumiro的回答)

>>> l = ['today','is','worm','and','dry']
>>> print dict(zip(l, l[1:]))
{'and': 'dry', 'is': 'worm', 'worm': 'and', 'today': 'is'}
>>> print dict(zip(l, l[1:] + [None]))
{'and': 'dry', 'dry': None, 'is': 'worm', 'worm': 'and', 'today': 'is'}
>>> print dict((k, [v]) for (k, v) in zip(l, l[1:] + [None]))
{'and': ['dry'], 'dry': [None], 'is': ['worm'], 'worm': ['and'], 'today': ['is']}
1

在编程中,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念,或者在写代码的时候犯了一些小错误。

比如,有些人可能会在代码中使用不合适的变量名,或者没有正确地调用函数。这些看似简单的错误,往往会导致程序无法正常工作。

另外,了解一些基本的编程规则和逻辑也是很重要的。比如,知道如何使用循环、条件判断等,这些都是编程的基础。

总之,编程就像是解谜一样,需要耐心和细心。如果遇到问题,不妨仔细检查一下自己的代码,或者寻求帮助,慢慢就能找到解决办法。

l = ['today','is','worm','and','dry']

d = {}
for w1, w2 in zip(l, l[1:]):
    d.setdefault(w1, []).append(w2)

# d == {'and': ['dry'], 'is': ['worm'], 'today': ['is'], 'worm': ['and']}

撰写回答