在字典中设置多个键/值(Python 2.72)
我有一个字符串的列表。我想创建一个字典,这个字典的键就是列表里的所有字符串(每个字符串当然都是一个键)。
接下来是值:每个键对应的值将是列表中紧跟在该键字符串后面的字符串。值的类型将是列表。
注意:最后一个字符串不会被包含在字典中。一个键在字典中不会出现两次。如果某个键有多个值,它们会被添加到该键现有值的列表中。顺序不重要(如果不排序能更简单地完成任务,那字典可以不排序)。
举个例子:
对于这个列表:
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']}