相关疑难解决方法(0)

python:排序

嗨,我做一个循环,所以我可以得到数据的字典,但由于它的字典,它按字母顺序排序,而不是因为我推动它循环...

是否有可能以某种方式关闭字母排序?

这是我该怎么做的

data = {}
for item in container:
  data[item] = {}
  ...
  for key, val in item_container.iteritems():
    ...
    data[item][key] = val
Run Code Online (Sandbox Code Playgroud)

whitch给我这样的东西

data = {
  A : { K1 : V1, K2 : V2, K3 : V3 },
  B : { K1 : V1, K2 : V2, K3 : V3 },
  C : { K1 : V1, K2 : V2, K3 : V3 }
}
Run Code Online (Sandbox Code Playgroud)

我希望它像我在循环中一样,例如

data = {
  B : {K2 : V2, K3 : V3, K1 …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary loops

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

在Python中按子值对dict进行排序

我花了一些时间阅读 SOF 并且在解决这个问题时遇到了问题。我似乎无法找到如何获得按子值排序的以下数据结构:

data = {}
data[1] = {name: "Bob", ...}
data[2] = {name: "Carl", ...}
data[3] = {nane: "Alice", ...}
Run Code Online (Sandbox Code Playgroud)

我需要将这些数据转换为某种形式的列表/元组/顺序字典结构,该结构按字母顺序排列,以便最终结果是这样的:

finalData = [{name: "Alice", ...}, {name: "Bob", ...}, {name: "Carl", ...}]
Run Code Online (Sandbox Code Playgroud)

谢谢。

python python-2.7

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

在Python 2.7中将嵌套的dict排序到有序列表中

我有以下意见:

d = {'d_1': {'score': 5.2, 'concept': 'a'}, 
     'd_2': {'score': 10.1, 'concept': 'e'}, 
     'd_3': {'score': 1.5, 'concept': 'c'}, 
     'd_4': {'score': 20.2, 'concept': 'd'}, 
     'd_5': {'score': 0.9, 'concept': 'b'}}
Run Code Online (Sandbox Code Playgroud)

我想按分数获取排序列表,如下所示:

d_sorted = [{'d_4': {'score': 20.2, 'concept': 'd'}},
            {'d_2': {'score': 10.1, 'concept': 'e'}},
            {'d_1': {'score': 5.2, 'concept': 'a'}},
            {'d_3': {'score': 1.5, 'concept': 'c'}},
            {'d_5': {'score': 0.9, 'concept': 'b'}}]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但这将按概念而不是分数进行排序:

d_sorted = sorted(d.items(), key=operator.itemgetter(1), reverse=True)
Run Code Online (Sandbox Code Playgroud)

在Python 2.7中,如何将按分数键(降序)将此嵌套字典排序为有序列表?

编辑:这不是在Python 2.7中将嵌套字典排序到有序列表中的重复,因为它涉及嵌套字典。

python sorting dictionary python-2.7

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

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

全部,

我正在努力通过单个键对包含每个键的多个值的字典进行排序。我有以下字典

{ 
     'time': [2, 1, 3], 
     'x_coordinates': [3, 5, 4], 
     'y_coordinates': [6, 7, 8]
}
Run Code Online (Sandbox Code Playgroud)

并希望将以下内容作为输出:

{
     'time': [1, 2, 3], 
     'x_coordinates': [5, 3, 4], 
     'y_coordinates': [7, 6, 8]
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能以最有效的方式实现这一目标?我曾尝试在互联网上寻求建议,但没有关于按单个键对多值键进行排序的内容。任何帮助将不胜感激。

python dictionary python-3.x

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

Python合并了两个词典

我想返回一个字典,其中值是按值的下降长度排序的列表.

恩.

data = {'r': [4,3],'t': [4,5,6], 'n': [1,6]}
Run Code Online (Sandbox Code Playgroud)

必须给

data = {'t': [4,5,6], 'r': [4,3],'n': [1,6]}
Run Code Online (Sandbox Code Playgroud)

然后,在第一次排序之后,我希望按照字母顺序对相同长度的值进行排序,如同

data = {'t': [4,5,6], 'n': [1,6], 'r': [4,3]} 
Run Code Online (Sandbox Code Playgroud)

有办法吗?

python sorting dictionary

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

根据列表中的项目数排序Python字典

我在Python中有一个小脚本,其字典与如下相同:

d = {'category_1' : ['a', 'b'], 
'category_2' : ['c', 'd', 'e'],
'category_3' : ['z']}
Run Code Online (Sandbox Code Playgroud)

如何根据列表中的值数对其进行排序?我希望它看起来像:

d = {'category_3' : ['z'], 
'category_1' : ['a', 'b'], 
'category_2' : ['c', 'd', 'e']}
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm

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

排序python字典

我有一个字典,其值是浮点数.我试图按值的降序排序字典,我试图通过按升序排序键来打破关系.

我实现了以下代码来实现这一目标:

for key, value in sorted(dictionary.items(), key=lambda x: (-x[1], x[0])):

    print key, value
Run Code Online (Sandbox Code Playgroud)

我的一些价值观似乎不合适.

2315 0.000232471518033

2823 0.000232414850716

3649 0.00023239634392

3695 0.00023239634392

3883 0.00023239634392

3479 0.00023239634392

3562 0.00023239634392

3613 0.00023239634392
Run Code Online (Sandbox Code Playgroud)

按照上面的代码行,以3479开头应该在以3649开头的行之前打印.

关于我对字典进行排序的方式可能有什么问题的任何想法?是否与浮点数的精度有关?

python sorting dictionary

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

在python中具有最低值的字典中打印键的名称

我有一个python字典:

dic={'a':'17','b':'9','c':'11'}
Run Code Online (Sandbox Code Playgroud)

我想找到这个字典中的最低值,并在上面的例子中显示该值的KEY名称,我想要名称: b

python dictionary

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

按键对字典进行排序:单键优先级和字母顺序

我有一个Python字典d

d = { 
    'a': 1,
    'b': 2,
    'c': 3,
    'd': 4,
}
Run Code Online (Sandbox Code Playgroud)

我想这样排序:

  1. 具有值的键x是第一位。
  2. 其他所有内容均按字母顺序排序。

因此,如果x = 'c'我希望输出为:

>>> print(new_d)
>>> { 'c': 3, 'a': 1, 'b': 2, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

是否有一种简单/轻松/ Pythonic的方法来做到这一点?是的,我已经看到并理解了有关这些问题的大量答案。如何按值对字典进行排序?以及如何按键对字典排序?

python sorting dictionary

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

按值对字典进行自定义排序

我有一个简单的字典和一个列表,我想按字典中的值排序。

data_dict = {'foo' : 'one', 'bar' : 'two', 'foobar' : 'three', 'notinsort' : 'four'}

custom_sort = ['three','one','two'] 
Run Code Online (Sandbox Code Playgroud)

我自己的尝试是在排序中使用带有自定义键的字典理解:

{k:v for k,v in sorted(data_dict.items(), key=lambda i : custom_sort.index(i[1]) )}
Run Code Online (Sandbox Code Playgroud)

这将正确地返回一个ValueError: 'four' is not in list

没问题,我可以使用 lambda 中的 if-else 语句过滤掉它吗?因为我仍然希望最初按自定义排序对值进行排序,所以可以使用自然排序。

{
    k: v
    for k, v in sorted(
        data_dict.items(),
        key=lambda i: custom_sort.index(i[1])
        if [k for k in data_dict.values() if k in custom_sort] 
        else sorted(data_dict.items()),
    )
}
Run Code Online (Sandbox Code Playgroud)

这返回相同的 ValueError,我尝试过的任何变化最终都会给我一个自然的排序,忽略我的自定义键。

我想要的上述输入输出是:

data_dict = {'foobar' : 'three', 'foo' : 'one', 'bar' : …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary

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

标签 统计

python ×10

dictionary ×8

sorting ×7

python-2.7 ×2

algorithm ×1

loops ×1

python-3.x ×1