Files
2025PY/day19/03-数据容器的算法题.py
2025-05-22 16:50:44 +08:00

77 lines
2.0 KiB
Python

# 1. 列表反转
lst = [1, 2, 3, 4, 5]
reversed_lst = lst[::-1]
print(f"反转后的列表是 {reversed_lst}")
# 2. 查找列表中的最大值和最小值
lst = [3, 1, 7, 5, 2]
max_value = max(lst)
min_value = min(lst)
print(f"最大值是 {max_value}")
print(f"最小值是 {min_value}")
# 3. 字典的键值交换
d = {'a': 1, 'b': 2, 'c': 3}
reversed_dict = {v: k for k, v in d.items()}
print(f"反转后的字典是 {reversed_dict}")
# 4. 集合的并集、交集、差集运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union = set1 | set2
intersection = set1 & set2
difference = set1 - set2
print(f"并集是 {union}")
print(f"交集是 {intersection}")
print(f"差集是 {difference}")
# 5. 元组拆包
t = (1, 2, 3, 4)
a, b, c, d = t
print(f"拆包后的元素是 {a} {b} {c} {d}")
# 6. 列表去重
lst = [1, 2, 2, 3, 3, 4]
unique_lst = list(set(lst))
print(f"去重后的列表是 {unique_lst}")
# 7. 列表中查找出现次数最多的元素
from collections import Counter
lst = [1, 2, 3, 1, 1, 2, 4]
counter = Counter(lst)
most_common_element = counter.most_common(1)[0][0]
print(f"出现次数最多的元素是 {most_common_element}")
# 8. 计算字典中所有值的总和
d = {'Alice': 20, 'Bob': 25, 'Charlie': 30}
total = sum(d.values())
print(f"字典中所有值的总和是 {total}")
# 9. 字典合并
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = {**dict1, **dict2}
print(f"合并后的字典是 {merged_dict}")
# 10. 从列表中删除指定元素
lst = [1, 2, 3, 1, 4, 1, 5]
remove_element = 1
new_lst = [x for x in lst if x != remove_element]
print(f"删除后的列表是 {new_lst}")
# 11. 列表中的嵌套字典
lst = [{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 25}]
key = 'name'
values = [d[key] for d in lst if key in d]
print(f"所有的 '{key}' 值是 {values}")
# 12. 找出列表中的最大和最小元素的差值
lst = [10, 2, 8, 6, 4]
max_val = max(lst)
min_val = min(lst)
diff = max_val - min_val
print(f"最大值和最小值之间的差是 {diff}")