- 生成10个0~10之间的随机数并输出其中互不相同的数。
import random
random_numbers = random.sample(range(11), 10)
print(random_numbers)
- 生成20个0~20的随机整数并按升序输出其中互不相同的数。
random_numbers = sorted(set(random.sample(range(21), 20)))
print(random_numbers)
- 集合操作
A = {('a', 1), ('b', 2), ('c', 3), ('d', 4)}
B = {('b', 2), ('c', 3), ('f', 3), ('d', 4)}
C = set()
# (1) 设置C初值是空集合
# (2) 从集合B中删除元素('d', 4)
C.update(A)
B.discard(('d', 4))
# (3) 输出A和B的差集
result = A - B
print(result)
- 合并通讯录
dicTXL = {"小新": "13913000001", "小亮": "13913000002"}
dicOther = {"大刘": "13914000001", "大王": "13914000002"}
dicWX = {"小新": "xx9907", "小刚": "gang1004", "大刘": "liu666"}
dicResult = {}
for name in set(dicTXL) | set(dicOther) | set(dicWX):
dicResult[name] = [dicTXL.get(name, "未知"), dicWX.get(name, "未知")]
print(dicResult)
- 数据集合操作
s1 = {11, 34, 25, 67, 33}
s2 = {22, 33, 15, 66, 25}
s3 = {87, 63, 22, 25, 76}
# ① 获取s1、s2中和s3中内容相同的元素列表
common_s1_s2_s3 = list(s1 & s2 & s3)
# ② 获取s1中有,s2中没有的元素列表
unique_s1_not_s2 = list(s1 - s2)
# ③ 获取s1和s2中内容都不同的元素
different_s1_s2 = list((s1 | s2) - (s1 & s2))
# ④ 获取s1、s2、s3中都包含的元素
all_common_elements = list(s1 & s2 & s3)
# ⑤ 获取s1、s2、s3中只出现一次的元素
unique_elements = list((s1 ^ s2 ^ s3) - (s1 & s2 & s3))
print("①", common_s1_s2_s3)
print("②", unique_s1_not_s2)
print("③", different_s1_s2)
print("④", all_common_elements)
print("⑤", unique_elements)
- 学生排名问题
exam1_top5 = {"王亮", "张磊", "施然", "方向", "刘潇"}
exam2_top5 = {"方向", "施然", "成龙", "张磊", "司马清"}
# (1) 找出第一次或第二次排名前五的学生姓名
top5_either_exam = exam1_top5 | exam2_top5
# (2) 两次考试均进前五的学生姓名
top5_both_exams = exam1_top5 & exam2_top5
# (3) 仅在一次考试中进前五的学生姓名
top5_only_one_exam = (exam1_top5 | exam2_top5) - (exam1_top5 & exam2_top5)
print("(1)", top5_either_exam)
print("(2)", top5_both_exams)
print("(3)", top5_only_one_exam)