python操做遇到难题,虚心问

利用列表推导式生成包含数字元素的两个随机列表,将两列表整合并转换为集合,判断在转换过程中是否合并了重复元素,并按"重复元素:重复次数"的键值对形式将信息保存为字典进行显示

该回答引用chatgpt:

import random

# 生成两个随机列表
list1 = [random.randint(1, 10) for _ in range(10)]
list2 = [random.randint(1, 10) for _ in range(10)]

# 将两个列表合并为一个集合
set1 = set(list1 + list2)

# 判断是否有重复元素,并统计重复次数
dict1 = {}
for elem in set1:
    if list1.count(elem) + list2.count(elem) > 1:
        dict1[elem] = list1.count(elem) + list2.count(elem)

# 输出结果
print("列表1:", list1)
print("列表2:", list2)
print("合并后的集合:", set1)
print("重复元素:重复次数", dict1)


这段代码首先使用列表推导式生成两个随机列表,然后将它们合并为一个集合。然后,遍历集合中的每个元素,判断它在两个列表中出现的次数是否大于1,如果是,则将其添加到字典中,并记录重复次数。最后,输出两个随机列表、合并后的集合和重复元素的信息。



import random
from collections import Counter

# 生成两个随机列表
nums1 = [random.randint(1, 10) for _ in range(10)]
nums2 = [random.randint(1, 10) for _ in range(10)]

# 将两个列表合并为一个集合
set1 = set(nums1 + nums2)

# 判断是否有重复元素,并统计重复次数
result = dict( Counter( nums1 + nums2 ) )
repeat_ele = { k:v for k,v in result.items() if v > 1 }

# 输出结果
print("列表1:", nums1)
print("列表2:", nums2)
print("合并后的集合:", set1)
print("重复元素:重复次数", repeat_ele)