python以下代码为什么运行会得到不一致的结果,如何理解
#字典推导式
ttt={i5 for i in range(0,10)}
print(ttt)
运行结果:
{0,35,5,40,10,45,15,20,25,30}
#
#列表推导式
qqq=[i5 for i in range(0,10)]
print(qqq)
运行结果:
[0,5,10,15,20,25,30,35,40,45]
#
字典推导式中等效的代码如何理解?
你的“i5”是什么,是指i * 5吗。出现这个不同的原因是字典的底层存储顺序和列表的底层存储顺序不同。你在你的字典推导式中并没有指明key值,如果指明key值,就会看起来合理很多。给你一个参考:
ttt={i:i*5 for i in range(0,10)}
print(list(ttt.values()))
qqq=[i * 5 for i in range(0,10)]
print(qqq)
你那个不是字典推导式,是集合,集合内元素排序无人知道顺序,每个机器都不一样
这是集合,不是字典
集合是无序的
list是有序的
除了顺序不一样里面内容不是一样吗
a = range(2, 10, 2)
for ind in a:
print(ind)
# 那么输出的值为[2,4,6,8]