【python小白问题】关于集合的一个基础问题
s = set()s1 = s.add('haha')
为什么打印后,s1是没有值的呢?
但是如果:
s = set()
s.add('haha')
s = s1
这个时候打印s和s1又都是有值的,不太理解为什么不能用第一种写法。 第一种写法没有把s赋值到s1里,而只是之添加在s里添加了‘haha’ s1 = s.add('haha')
这个语句,你赋值给s1的不是集合s,而是add()方法的返回值(空) s.add('haha') #表示一个类的方法函数
s1 = s.add('haha')#表示把函数的返回值赋值给s1,函数返回值并不是这个列表本身 第一种情况不会都打印不出来,打印s是可以的。s1打印不出来是因为没有被定义成字典。
而s1 = s.add('haha')可以把s1看成是执行s的添加元素的过程,过程结束了就没有了,不会出现任何东西,就像时间过去了就过去了,不会被找到以前的任何东西。所以s1是没有值的。
第二种情况是执行完过程s.add("haha")后,进行了一个s = s1的复制。打印都能打印。
笨鸟学飞 发表于 2020-10-24 22:08
s.add('haha') #表示一个类的方法函数
s1 = s.add('haha')#表示把函数的返回值赋值给s1,函数返回值并不是 ...
重复了{:10_256:}
页:
[1]