刷题

第4天的作业打卡

给定一个正整数,统计该正整数中,出现次数最多的数字,如果有多个,按照数字排序后输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
from collections import defaultdict

try:
numbers_int = int(input("A positive integer please: "))
numbers = str(numbers_int) # 将整数转换为字符串
if numbers_int <= 0:
raise Exception
except Exception:
print("Input is not an positive integer, giving up.")
sys.exit()

cnt_dict=defaultdict(int)

for item in numbers:
cnt_dict[item] += 1

res = []

max_cnt = max(cnt_dict.values())

for cnt_key, cnt_value in cnt_dict.items():
if cnt_value == max_cnt:
res.append(int(cnt_key))
res = ', '.join(str(k) for k in res) # 将结果列表中的整数转换为字符串

print(f'出现次数最多的是{res}, 次数是{max_cnt}')

元组和列表的区别

  • 列表是可变的,可以通过索引和切片进行修改、添加和删除元素。而元组是不可变的,一旦创建就不能对其进行修改。

  • 列表使用方括号 [ ] 来表示,元素之间用逗号 , 分隔。元组使用圆括号 ( ) 来表示,元素之间也用逗号 , 分隔。但是,当元组只包含一个元素时,需要在元素后添加一个逗号,以区分它是一个元组而不是一个普通的值。

  • 使用场景:列表通常用于存储多个相关的值,并且需要进行增删改查操作。元组通常用于保护数据的完整性,也可用于存储不可变的、有序的数据。

如何修改元组?

1
2
3
4
5
tup=(1,2,3)
lst=list(tup)
lst.append(4)
tup=tuple(lst) # tuple(lst) 将列表转换为元组
print(tup) # (1, 2, 3, 4)

或者

1
2
3
tup=(1,2,3)
tup=tup[:]+(4,)
print(tup) # (1, 2, 3, 4)