[英]python list comprehension in dictionary
def square100():
d = {f"{x}" : f"{x**2}" for x in range(101)}
print(d)
if __name__ == "__main__":
quadrado100()
这个 function 按升序返回值。
def square100():
d = {f"{x} : {x**2}" for x in range(101)}
print(d)
if __name__ == "__main__":
quadrado100()
但是这个 function 应该做同样的事情,以随机顺序显示。 有谁知道为什么?
无话可说
后者是set
理解,而不是dict
理解(两者都不是list
理解); 区别在于没有:
(在顶层,外部字符串引号等)将键与set
文字或理解中的值分开,而在dict
文字或理解中有一个。
set
s 具有任意顺序(对于字符串有效随机;它会在 Python 的不同运行之间发生变化,甚至可以根据添加和删除项目的顺序在 Python 的单次运行中发生变化),而dict
s(在 3.6 中为一个实现细节,在 3.7+ 中作为语言保证)是按插入顺序排列的。 因此,您的代码的第一位( dict
理解)保留了顺序,而基于set
的后者则没有。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.