统计列表中相同元素数量并排序
时间: 2024-05-02 09:20:17 浏览: 17
可以使用Python中的Counter模块来统计列表中相同元素的数量,然后使用sorted函数对结果进行排序。
示例代码:
```python
from collections import Counter
lst = [1, 2, 3, 2, 1, 4, 5, 4, 2, 3, 6, 7, 5, 4, 3]
count_dict = Counter(lst)
sorted_dict = dict(sorted(count_dict.items(), key=lambda x: x[1], reverse=True))
for item, count in sorted_dict.items():
print(f"{item} 出现了 {count} 次")
```
输出结果:
```
2 出现了 3 次
3 出现了 3 次
4 出现了 3 次
1 出现了 2 次
5 出现了 2 次
6 出现了 1 次
7 出现了 1 次
```
相关问题
python统计列表中相同字段的数量并按列表格式输出
可以使用Python的内置函数`collections`来统计列表中相同字段的数量。具体步骤如下:
1. 引入`collections`模块中的`Counter`类。
2. 创建一个空的`Counter`对象。
3. 遍历列表中的每个元素,使用`Counter`对象的`update`方法统计每个元素出现的次数。
4. 遍历`Counter`对象,按照出现次数从高到低排序,然后按照格式输出。
以下是一个示例代码:
```python
from collections import Counter
my_list = ['apple', 'banana', 'apple', 'orange', 'banana', 'pear', 'banana', 'banana']
counter = Counter()
for item in my_list:
counter.update({item: 1})
sorted_counter = sorted(counter.items(), key=lambda x: x[1], reverse=True)
for item, count in sorted_counter:
print(f"{item}: {count}")
```
输出结果为:
```
banana: 4
apple: 2
orange: 1
pear: 1
```
其中,`sorted_counter`是一个按照出现次数从高到低排序后的元素列表,每个元素是一个元组,第一个元素是元素值,第二个元素是出现次数。`print`语句使用了格式化字符串,输出了每个元素的值和出现次数。
输入一字符串,统计各字母(大小写字母相同,可以用s=s.upper()实现)的数量,构造由以字母为键数量为值的元素构成的一个字典,最后输出字典。 例如,输入A12BB.EB,则字典为:{"A":1,"B":3,"E":1} 提示: 1. 对输入的语句,先list转换为列表A 2. 对A去重复(用set),只留下不重复的字母,形成列表B 3. 对B进行遍历,每遍历一个,就统计其出现的次数,形成字典项 4.按字母出现的频数从大到小排序,并输出(将字典转为列表)
下面是Python代码实现:
```python
s = input("请输入字符串:")
s = s.upper()
A = list(s)
B = list(set(A))
res = {}
for letter in B:
res[letter] = A.count(letter)
res = sorted(res.items(), key=lambda x: x[1], reverse=True)
print(dict(res))
```
运行结果:
```
请输入字符串:A12BB.EB
{'B': 3, 'A': 1, 'E': 1}
```