>>> the_values = [u'abc', u'kfc', u'listproperty', u'models', u'new', u'newer', u'note', u'order', u'tag', u'test', u'type']
>>> the_keys = [1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1]
d2 = dict(zip(the_keys, the_values))
>>> d2
{1: u'type', 2: u'tag'}
你能告诉我为什么只选择“打字”和“标签”吗?
我正在尝试按the_values
排序the_keys
。
我注意到切换the_values
和the_keys
的顺序有效:
>>> d2 = dict(zip(the_values, the_keys))
>>> d2
{u'abc': 1, u'models': 2, u'note': 1, u'tag': 2, u'kfc': 2, u'newer': 1, u'listproperty': 1, u'test': 1, u'new': 1, u'type': 1, u'order': 1}
感谢。
答案 0 :(得分:3)
键必须是唯一的,因此使用1和2作为唯一键意味着您只能有两个与之关联的值。
当您创建字典时,您将设置键以对应于值。首先,1 - > abc,2 - >肯德基。但是,你不断重写关键,给他们不同的价值观。最后,只保留键的最新值(1 - > type,2>标记)。
答案 1 :(得分:3)
正如其他人所说,密钥必须是唯一的。为了解决这个问题,你不能使用字典。
>>> [x[1] for x in sorted(zip(the_keys, the_values), key=operator.itemgetter(0))]
[u'abc', u'listproperty', u'new', u'newer', u'note', u'order', u'test', u'type', u'kfc', u'models', u'tag']
答案 2 :(得分:2)
因为根据定义,字典具有唯一键。 (否则,当你查找键时,它将如何知道返回哪个值?)dict
构造函数遍历键值对并将值分配给字典中的相应键,覆盖以前的值已存在的密钥。