Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将值列表转换为python中的字典?_Python_List_Dictionary - Fatal编程技术网

如何将值列表转换为python中的字典?

如何将值列表转换为python中的字典?,python,list,dictionary,Python,List,Dictionary,我有一个(未排序的)字典,其中键从0.0开始,然后继续0.1、0.2、0.3等等。所有的值也是数字。 我还有一个sys.argv输入,称为“a”,它是一个浮点。 我需要一本新字典,其中的键应该是: a a+0.1 a+0.2 a+0.3 。。。直到原始dict中的所有值都分配了一个键。这些值应该保持不变。 因此,最终的词典应该是: {a:first item of sorted dict, a+0.1:second item of sorted dict,...} 因此,基本上,键应该添加到

我有一个(未排序的)字典,其中键从0.0开始,然后继续0.1、0.2、0.3等等。所有的值也是数字。 我还有一个sys.argv输入,称为“a”,它是一个浮点。 我需要一本新字典,其中的键应该是:

a
a+0.1
a+0.2
a+0.3
。。。直到原始dict中的所有值都分配了一个键。这些值应该保持不变。 因此,最终的词典应该是:

{a:first item of sorted dict, a+0.1:second item of sorted dict,...}
因此,基本上,键应该添加到float'a'的大小

我尝试将未排序的词典转换为排序列表,如下所示:

list=[]
for i in sorted(dict.keys()):
list.append(dict[i])
现在,我有了需要分配给新键的原始dict值的排序列表。

用于将增量映射到键和值:

>>> from collections import OrderedDict
>>> d = {0.1:1,0.2:2}
>>> d
{0.2: 2, 0.1: 1}
>>> od = OrderedDict(d)
>>> od
OrderedDict([(0.2, 2), (0.1, 1)])
>>> newOrderedDict = OrderedDict(map(lambda (x,y): (x+5, y), od.items()))
>>> newOrderedDict
OrderedDict([(5.2, 2), (5.1, 1)])
请注意,orderedDict一直在插入顺序而不是值顺序,因此如果您想要值顺序,只需在构建新的orderedDict之前对映射列表进行排序即可

>>> newOrderedDict = OrderedDict(sorted(map(lambda (x,y): (x+5, y), od.items()), key=lambda (x,y):x))
>>> newOrderedDict
OrderedDict([(5.1, 1), (5.2, 2)])

字典没有排序(以用户可复制的方式)。如果您的目标是相同的词典,但每个键都增加了
a
,那么这将起作用:

>>> data = {0.0: 100, 0.1: 200, 0.2: 300, 0.3: 400}
>>> a = 7
>>> new_data = {key + a: value for key, value in data.items()}
>>> new_data
{7.0: 100, 7.1: 200, 7.2: 300, 7.3: 400}

键是否总是按
0.1
递增,是否可能有间隙?字典没有“排序”的概念。你应该考虑使用一个列表。它总是0.1,没有一个空缺。然后你应该使用一个列表。不要使用<代码>列表>代码>作为一个变量名,因为它是一个Python关键字。谢谢!但不知何故,输出是不有序的。'a'被添加到键中,但输出是:5.0:value、5.5:other value、9.5:other value等等。我尝试用我以前使用的方法对其进行排序:E=collections.orderedict(sorted(neworderedict.items())但它不起作用。@user5758559,orderedict一直插入顺序,而不是值顺序,无论如何,排序应该可以工作,让我更新我的answerdict对象不保证按默认值排序当然不是。但是我在创建新词典之前对它们进行了排序
new_data
未排序,但它是一个具有所需键值对的字典。他需要对其进行正确排序,因此新的_data dict仍然没有排序,因为它仍然是一个dict,仍然不能保证被排序。我需要一个新字典,其中的键应该是:没有提到排序。新钥匙在那儿。任务完成了。是的,我错了,抱歉