python字典按正负数排序
时间: 2023-09-12 21:13:23 浏览: 56
可以使用Python内置的sorted函数来对字典按照正负数排序,具体实现如下:
```python
d = {'a': -1, 'b': 2, 'c': -3, 'd': 4, 'e': -5}
sorted_d = sorted(d.items(), key=lambda x: x[1])
print(sorted_d)
```
运行结果为:
```
[('e', -5), ('c', -3), ('a', -1), ('b', 2), ('d', 4)]
```
上述代码中,我们将字典d转换为元组列表,然后使用lambda函数对元组列表进行排序,按照元组的第二个元素(即字典中的值)进行排序。由于lambda函数返回值为元组的第二个元素,因此sorted函数按照字典中值的大小进行排序。最后打印排序后的元组列表即可。
相关问题
python字典按指定字段排序
可以使用内置函数 `sorted()` 对字典进行排序。
要对字典按照某个特定的字段进行排序,可以在调用 `sorted()` 函数时传递一个 `key` 参数,其中指定了用于排序的字段。例如,要按照字典的值(`value`)进行排序,可以这样写:
```
sorted(dictionary.items(), key=lambda x: x[1])
```
如果要按照字典的键(`key`)进行排序,可以这样写:
```
sorted(dictionary.items(), key=lambda x: x[0])
```
如果要降序排列,可以在 `key` 函数中加入一个负号:
```
sorted(dictionary.items(), key=lambda x: -x[1])
```
这样就可以对字典按照指定的字段进行排序了。
注意:上述方法得到的是一个列表,而不是字典本身。如果需要得到一个排序后的字典,可以使用 `collections` 模块中的 `OrderedDict` 类。
```
from collections import OrderedDict
d = OrderedDict(sorted(dictionary.items(), key=lambda x: x[1]))
```
这样就得到了一个按照指定字段排序的字典。
python如何实现正负数统一排序
在Python中,可以使用sort()函数实现列表中的正负数统一排序,具体实现方法如下:
```python
# 定义一个包含正负数的列表
lst = [3, -1, 4, -1, 5, -9, 2, -6, 5, 3, -5]
# 将正负数分别存放到两个列表中
positive_lst = [i for i in lst if i >= 0]
negative_lst = [i for i in lst if i < 0]
# 对正负数分别进行排序
positive_lst.sort()
negative_lst.sort(reverse=True)
# 将排序后的结果合并成一个列表
result_lst = negative_lst + positive_lst
print(result_lst)
```
在上述代码中,我们首先将原始列表lst中的正数和负数分别存放到两个列表positive_lst和negative_lst中。然后,对这两个列表分别使用sort()函数进行排序,其中,对负数列表进行降序排序,对正数列表进行升序排序。最后,我们将排序后的结果合并成一个列表,并将其打印出来。
需要注意的是,如果原始列表中包含0,那么它会被视为正数,因此可能会影响排序结果。如果需要对0也进行排序,可以将它归到其中一个列表中,然后在排序后再将其归并到结果列表中。