-
用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
subject1 = {'stu1', 'stu2', 'stu6', 'stu9'} subject2 = {'stu1', 'stu2', 'stu4', 'stu6', 'stu8'} subject3 = {'stu1', 'stu3', 'stu4', 'stu5', 'stu7'} # a. 求选课学生总共有多少人 s_um = subject1 | subject2 | subject3 print('总人数:', len(s_um)) # b. 求只选了第一个学科的人的数量和对应的名字 subject1_only = subject1 - subject2 - subject3 print('只选了第一个学科的:', len(subject1_only), subject1_only) # c. 求只选了一门学科的学生的数量和对应的名字 subject_all = (subject1 & subject2 & subject3) subject_only = (subject1 ^ subject2 ^ subject3)-subject_all print('只选了一门学科:', len(subject_only), subject_only) #d. 求只选了两门学科的学生的数量和对应的名字 subject_all = (subject1 & subject2 & subject3) subject_two = s_um-subject_only-subject_all print('只选了两门学科:', len(subject_two), subject_two) #e. 求选了三门学生的学生的数量和对应的名字 subject_all = (subject1 & subject2 & subject3) print('选了三门学生:', len(subject_all), subject_all)
-
获取列表中出现次数最多的元素
例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3
nums = [1,2,2,1,3] --> 打印1、2
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3, 2, 2]
new_nums = set(nums)
nums_ = {}
m_ax = 0
for y in new_nums:
nums_.setdefault(y, nums.count(y))
if nums.count(y) > m_ax:
m_ax = nums.count(y)
for z in nums_:
if nums_[z] == m_ax:
print('出现的次数是:', nums_[z], '出现的元素是:', z)
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3, 2, 2]
#1)去重获取不重复分元素
new_nums = list(set(nums))
#2)统计每个元素出现的次数
counts = []
for x in new_nums:
counts.append(nums.count(x))
#3)获取最大次数
max_count = max(counts)
#4)获取最大次数对应的元素
for index in range(len(counts)):
if counts[index] == max_count:
print(new_nums[index])
-
实现给定一个日期,判断这个日期是今年第几天的程序(尝试)
例如:2022/12/31 --> 今年第365天;2022/1/1 --> 今年第1天
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = input('请输入日期:')
year = int(day[:4])
m_onth = ''
ri = ''
for i in range(5, len(day)):
if day[i] == '/':
m_onth += day[5:i]
ri += day[i + 1:]
sum = 0
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
sum += 1
for i in range(int(m_onth) - 1):
sum += days[i]
sum += int(ri)
print(sum)
print(year, m_onth, ri)