对列表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以前,那么字典也是无序的