Python的列表类问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

对列表a = [1, 2, 3 ,4 ,5, 6, 7, 8, 9, 10]进行以下哪个语句推导,even_square列表的值不一定是[4, 16, 36, 64, 100]。

A.even_square = [x**2 for x in a if x %2 ==0]

B.even_square = list({x: x**2 for x in a if x %2 ==0}.values())

C.even_square = list({x**2 for x in a if x %2 ==0})

D.even_square = list(x**2 for x in a if x %2 ==0)

这4个推导式看起来都一样,但是类型不一样
A是个列表
B是字典
C是集合
D是元组
其中BCD最后都强制转换回了list
那么答案是C,因为集合是无序的
但是这题出的并不严谨,没说python版本,如果是3.6以前,那么字典也是无序的

img


C集合顺序不定