这个程序运行总是显示错误,哪不对啊

)编写程序,输入包含若干集合的列表,输出这些集合的并集。要求使用reduce()函
数和lambda表达式完成。运行总显示错误,我也不明白错在哪

img

img

from functools import reduce

sets = [{1, 2, 3}, {2, 3, 4}, {3, 4, 5}]

result = reduce(lambda x, y: x.union(y), sets)

print(result)


from functools import reduce

a = eval(input('请输入一个包含若干集合的列表:'))
print("输入的数据类型是: {}".format(type(a)))
print("输入的数据是: {}".format(a))
print("合并后的结果是:")
print(reduce(lambda x, y: x | y, a))

其实我的代码和你的代码没有本质的区别,我只是添加了一些打印。你出错的关键不在代码,而在于你的输入:
需要输入的是一个包含若干集合的列表,所以这得满足两个条件, 一个是输入的是一个列表,也就是list;其次,列表中包含了若干个集合。
所以,在代码等待输入的时候,我们应该输入类似以下的数据:

[{1,2,3}, {2,3,4}, {5,6}]

python中的列表就是数组,用[]来表示,而集合用{}来表示。