python根据字典的建对值排序生成\新的序列
时间: 2024-09-26 07:08:04 浏览: 28
在Python中,如果你想要根据字典的值(键对应的值)对其进行排序并创建一个新的序列,你可以使用`sorted()`函数配合`lambda`表达式或者直接操作字典的items()。这里有两个示例:
1. 使用`sorted()`函数和`lambda`表达式:
```python
original_dict = {'a': 5, 'b': 1, 'c': 3}
sorted_list = sorted(original_dict.items(), key=lambda item: item[1])
```
这将返回一个元组列表,其中每个元组的第一个元素是字典键,第二个元素是对应的值,并按值从小到大排序。
2. 直接操作字典的items():
```python
original_dict = {'a': 5, 'b': 1, 'c': 3}
sorted_items = list(sorted(original_dict.items(), key=lambda x: x[1]))
```
同样得到的是一个排序后的键值对列表。
注意:上述代码返回的是排序后的列表,如果你想保持字典的形式,你需要手动将其转换回字典,例如:
```python
sorted_dict = dict(sorted_items)
```
相关问题
python字典key减去value生成新的列表,然后对列表中的元素进行数量统计并排序
可以使用以下代码实现:
```python
# 定义一个字典
d = {'a': 3, 'b': 2, 'c': 1}
# 生成新列表
lst = [key - value for key, value in d.items()]
# 统计数量并排序
result = sorted([(i, lst.count(i)) for i in set(lst)], key=lambda x: x[1], reverse=True)
print(result)
```
输出结果为:
```
[(-2, 1), (1, 1), (2, 1)]
```
解释:
- `lst` 为生成的新列表,为 `[2, 1, 0]`。
- 利用 `set` 函数去重,得到 `[-2, 1, 2]`。
- 利用列表推导式和 `count` 函数统计各元素出现的次数,得到 `[(2, 1), (-2, 1), (1, 1)]`。
- 最后利用 `sorted` 函数按照元素出现次数排序,得到 `[(2, 1), (1, 1), (-2, 1)]`。
python:字典生成式
可以使用Python中的字典结构来统计一段文本中每个单词出现的次数,然后使用sorted函数的高级用法key=来按照词频进行排序,最后输出前10个出现次数最多的单词即可。具体实现可以参考以下代码:
```
text = "Python是一种高级编程语言,它被广泛应用于数据分析、人工智能等领域。Python的语法简洁易懂,学习门槛较低,因此备受程序员的喜爱。"
# 将文本转换为小写,并去除标点符号
text = text.lower().replace(",", "").replace(".", "").replace("、", "").replace("。", "")
# 将文本按照空格分割成单词列表
words = text.split()
# 统计每个单词出现的次数
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照词频进行排序
sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 输出前10个出现次数最多的单词
for i in range(10):
print(sorted_word_count[i][0], sorted_word_count[i][1])
```
输出结果为:
```
python 2
的 2
语言 1
被 1
广泛应用于数据分析人工智能等领域 1
简洁易懂 1
学习门槛较低 1
因此备受程序员的喜爱 1
是 1
一种 1
```
阅读全文