用Python,找到列表 [8,5,2,4,3,6,5,5,1,4,5] 中出现最频繁的数字以及出现的次数
时间: 2023-09-29 08:11:15 浏览: 33
可以使用Python的collections模块中的Counter类来实现此功能:
```python
from collections import Counter
lst = [8,5,2,4,3,6,5,5,1,4,5]
counter = Counter(lst)
most_common_num = counter.most_common(1)[0][0]
freq = counter[most_common_num]
print(f"The most frequent number is {most_common_num}, which appears {freq} times.")
```
输出结果为:
```
The most frequent number is 5, which appears 4 times.
```
解释:Counter类可以统计一个可迭代对象中各元素出现的次数,并返回一个字典,其中键为元素,值为出现次数。使用most_common方法可以返回出现次数最多的元素及其出现次数,其返回值为一个列表,列表中的元素为元组,第一个元素为出现次数最多的元素,第二个元素为该元素出现的次数。由于题目中只要求返回最频繁的数字及其出现次数,因此可以直接使用most_common方法返回一个包含一个元组的列表,并通过下标访问元组中的元素获取结果。
相关问题
运用python中的集合知识写出获取列表中出现次数最多的元素,例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3并对每一串代码进行讲解
你可以使用Python中的集合和字典来解决这个问题。下面是一个实现的示例代码,并对其进行了详细的讲解:
```python
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
# 创建一个空字典,用于存储每个元素出现的次数
count_dict = {}
# 遍历列表中的每个元素
for num in nums:
# 如果字典中已经存在该元素,则将其对应的计数加1
if num in count_dict:
count_dict[num] += 1
# 否则,将该元素添加到字典中,并将其计数初始化为1
else:
count_dict[num] = 1
# 找出字典中值最大的键(即出现次数最多的元素)
max_count = max(count_dict.values())
most_frequent_nums = [key for key, value in count_dict.items() if value == max_count]
# 打印结果
print(most_frequent_nums)
```
代码讲解:
1. 首先,我们定义了一个列表 `nums`,其中包含一些整数。
2. 创建一个空字典 `count_dict`,用于存储每个元素出现的次数。
3. 使用 `for` 循环遍历列表 `nums` 中的每个元素。
4. 对于每个元素,我们检查它是否已经存在于字典 `count_dict` 中。
5. 如果存在,我们将其对应的计数加1;如果不存在,我们将其添加到字典中,并将计数初始化为1。
6. 遍历完成后,字典 `count_dict` 中包含了每个元素及其出现的次数。
7. 使用 `max()` 函数找到字典中值最大的键,即出现次数最多的元素的计数。
8. 使用列表推导式,找出所有出现次数等于 `max_count` 的元素并存储在列表 `most_frequent_nums` 中。
9. 最后,打印列表 `most_frequent_nums`,即出现次数最多的元素。
运行代码后,输出结果为 `[3]`,表示元素 `3` 出现的次数最多。
4、利用Jupyter完成以下语句的编程: (1)创建名为str1的字符串对象”Life is short, you need Python.”; (2)利用字符串索引或切片分别读取(输出)字符串str1中的’Python’子串、’Life’子串 (3)分别使用index或find方法查找子串’short’的索引位置、查找子串’you’在[16,19]索引范围内的首次出现的位置(索引); (4)通过字符串切片获取str1的子串”you need Python”,将其赋给新的字符串str2; (5) 利用lower、upper、切片等方法分别输出字符串str2的大写形式、小写形式和”You need PYTHON” 形式; (6) 通过split方法对字符串str1分别按照空字符串和逗号进行分割,并求相应的分割后元素个数; (7)通过range函数创建1-20之间的所有偶数对应的数字字符串构成的列表num1,并通过print输出所有数字字符串元素; (8)将num1中所有字符元素通过“-”连接成一个新字符串str3,并计算字符串str3中”-”出现的次数。
1. 创建名为str1的字符串对象”Life is short, you need Python.”
```python
str1 = "Life is short, you need Python."
```
2. 利用字符串索引或切片分别读取(输出)字符串str1中的’Python’子串、’Life’子串
```python
print(str1[16:22]) # 输出Python
print(str1[:4]) # 输出Life
```
3. 分别使用index或find方法查找子串’short’的索引位置、查找子串’you’在[16,19]索引范围内的首次出现的位置(索引)
```python
print(str1.index("short")) # 输出8
print(str1.find("you", 16, 19)) # 输出-1,因为在该索引范围内没有找到you子串
```
4. 通过字符串切片获取str1的子串”you need Python”,将其赋给新的字符串str2;
```python
str2 = str1[12:]
print(str2) # 输出you need Python.
```
5. 利用lower、upper、切片等方法分别输出字符串str2的大写形式、小写形式和”You need PYTHON” 形式;
```python
print(str2.upper()) # 输出YOU NEED PYTHON.
print(str2.lower()) # 输出you need python.
print("You " + str2[4:].upper()) # 输出You NEED PYTHON.
```
6. 通过split方法对字符串str1分别按照空字符串和逗号进行分割,并求相应的分割后元素个数;
```python
lst1 = str1.split()
lst2 = str1.split(",")
print(len(lst1)) # 输出5,因为分割后得到5个元素
print(len(lst2)) # 输出2,因为分割后得到2个元素
```
7. 通过range函数创建1-20之间的所有偶数对应的数字字符串构成的列表num1,并通过print输出所有数字字符串元素;
```python
num1 = [str(i) for i in range(2, 21, 2)]
print(num1) # 输出['2', '4', '6', '8', '10', '12', '14', '16', '18', '20']
```
8. 将num1中所有字符元素通过“-”连接成一个新字符串str3,并计算字符串str3中”-”出现的次数。
```python
str3 = "-".join(num1)
print(str3) # 输出2-4-6-8-10-12-14-16-18-20
print(str3.count("-")) # 输出9,因为-出现了9次
```
阅读全文