代码:
d = ["my", "name", "is", "abc"]
a = {x: x*2 for x in d}
print a
输出:
{'is': 'isis', 'abc': 'abcabc', 'my': 'mymy', 'name': 'namename'}
输出不是“d”列表的顺序。
我也试过这个:
a = collections.Ordered({x: x*2 for x in d})
但无法得到预期的结果。
如何使用与“d”列表相同的元素生成字典?
答案 0 :(得分:5)
这有效:
OrderedDict([(x, x*2) for x in d])
输出:
OrderedDict([('my', 'mymy'), ('name', 'namename'), ('is', 'isis'), ('abc', 'abcabc')])