相关疑难解决方法(0)

如何按值对字典进行排序?

我有一个从数据库中的两个字段读取的值字典:字符串字段和数字字段.字符串字段是唯一的,因此这是字典的键.

我可以对键进行排序,但是如何根据值进行排序?

注意:我已阅读Stack Overflow问题如何按Python中字典的值对字典列表进行排序?并且可能可以更改我的代码以获得字典列表,但由于我不需要字典列表,我想知道是否有更简单的解决方案.

python sorting dictionary

3424
推荐指数
31
解决办法
249万
查看次数

是否在Python 3.6+中订购了字典?

字典在Python 3.6中排序(至少在CPython实现下),与之前的版本不同.这似乎是一个重大变化,但它只是文档中的一小段.它被描述为CPython实现细节而不是语言特性,但也暗示这可能成为未来的标准.

在保留元素顺序的同时,新字典实现如何比旧字典实现更好?

以下是文档中的文字:

dict()现在使用PyPy开创的"紧凑"表示.与Python 3.5相比,新dict()的内存使用量减少了20%到25%.PEP 468(在函数中保留**kwargs的顺序.)由此实现.这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来发生变化,但是在更改语言规范之前,希望在几种版本的语言中使用这个新的dict实现为所有当前和未来的Python实现强制命令保留语义;这也有助于保持与随机迭代顺序仍然有效的语言的旧版本的向后兼容性,例如Python 3.5).(由INADA Naoki在issue 27350中提供.最初由Raymond Hettinger提出的想法.)

2017年12月更新:Python 3.7 保证dict保留插入顺序

python dictionary python-3.x python-internals python-3.6

386
推荐指数
5
解决办法
8万
查看次数

如何在Python中按键对字典进行排序

任何人都可以告诉我如何排序这个:

{'a': [1, 2, 3], 'c': ['one', 'two'], 'b': ['blah', 'bhasdf', 'asdf'], 'd': ['asdf', 'wer', 'asdf', 'zxcv']}
Run Code Online (Sandbox Code Playgroud)

{'a': [1, 2, 3], 'b': ['blah', 'bhasdf', 'asdf'], 'c': ['one', 'two'],'d': ['asdf', 'wer', 'asdf', 'zxcv']}
Run Code Online (Sandbox Code Playgroud)

?谢谢!

更新1,代码示例:

所以我在做语言学.一篇文章分解为存储在数据库中的单词,并具有各种属性,包括段ID和句子ID.任务:尝试重建原始文本.

从DB中获取500个连续的单词

words = Words.objects.all()[wordId:wordId+500]
# I first create paragraphs, through which I can loop later in my django template,
# and in each para will be a list of words (also dictionaries). 
# So i am trying to get a dictionary with values that …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary

18
推荐指数
3
解决办法
8万
查看次数

python字典值排序

我有2个字典,dict1并且dict2其中包含相同的密钥,但是不同的值的密钥.我想要做的是为每个字典,从最大到最小的值排序,然后给每个值一个等级1-N,1是最大的值.从这里开始,我希望得到相同键的每个字典中值的等级差异.例如:

dict1 = {a:0.6, b:0.3, c:0.9, d:1.2, e:0.2}
dict2 = {a:1.4, b:7.7, c:9.0, d:2.5, e:2.0}

# sorting by values would look like this:
dict1 = {d:1.2, c:0.9, a:0.6, b:0.3, e:0.2}
dict2 = {c:9.0, b:7.7, d:2.5, e:2.0, a:1.4}

#ranking the values would produce this:
dict1 = {d:1, c:2, a:3, b:4, e:5}
dict2 = {c:1, b:2, d:3, e:4, a:5}

#computing the difference between ranks would be something like this:
diffs = {}
for x in dict1.keys():
    diffs[x] = …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary

9
推荐指数
2
解决办法
9902
查看次数

Python 按值降序对嵌套字典进行排序

我有一本字典,看起来像这样

{
'Host-A': {'requests': 
    {'GET /index.php/dashboard HTTP/1.0': {'code': '200', 'hit_count': 3},
     'GET /index.php/cronjob HTTP/1.0': {'code': '200', 'hit_count': 4},
     'GET /index.php/setup HTTP/1.0': {'code': '200', 'hit_count': 2}},
'total_hit_count': 9},
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,'Host-A'该值是一个字典,包含收到的请求和每个页面上的点击次数。问题是如何按'requests'降序排序。这样我就可以得到最重要的请求。

正确解决方案输出的示例如下:

{
'Host-A': {'requests':
    {'GET /index.php/cronjob HTTP/1.0': {'code': '200', 'hit_count': 4},
     'GET /index.php/dashboard HTTP/1.0': {'code': '200', 'hit_count': 3},
     'GET /index.php/setup HTTP/1.0': {'code': '200', 'hit_count': 2}},
'total_hit_count': 9},
}
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助

python sorting dictionary python-3.x

5
推荐指数
1
解决办法
2049
查看次数

按优先级排序Python字典

我有一个由(名称,值)对组成的python字典,像这样

pyDictionary = {"Bob":12,"Mellissa":12,"roger":13}
Run Code Online (Sandbox Code Playgroud)

我想做的就是获得上述字典的排序版本,在该排序中,首先对值赋予第一个属性,然后进行排序,如果两对值相同,则应通过字典比较这些名称来进行比较。

我如何在python3.7中实现呢?

python sorting python-3.7

4
推荐指数
1
解决办法
133
查看次数

如何按键值对字典进行正确排序?

我想按特定键的值对字典进行排序(示例中的“foo”)

mydict = dict()
mydict["a"] = {"foo": 0.3, "boo": 0.1}
mydict["b"] = {"foo": 0.1, "boo": 0.2}
mydict["c"] = {"foo": 0.8, "boo": 0.3}
mydict["d"] = {"foo": 0.5, "boo": 0.4}
mydict["e"] = {"foo": 0.2, "boo": 0.5}

# sort by "foo" in descending order
# expected result: [{"foo": 0.8, "boo": 0.3}, {"foo": 0.5, "boo": 0.4}, {"foo": 0.3, "boo": 0.1}, {"foo": 0.2, "boo": 0.5}, {"foo": 0.1, "boo": 0.2}]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到上面评论中显示的我想要的结果?

python dictionary

1
推荐指数
1
解决办法
76
查看次数