举例来说,假如想得到一个创建时就有且仅有10个1的数组,以便接下来操作,应该如何(不使用for循环一个个加的话)
不使用for的就只能是li = [1] * 10
列表 * 数值是把列表中的元素重复数值的次数
但要注意这里列表中的1是数值属于不可变类型,这样没什么问题
但如果值是字典或列表等可变类型就不行了。
如li = [{"a":1}] * 10
因为字典是按地址传递的,当把同一个字典多次添加到列表中时,列表中每个字典都是同一个地址。
改变其中一个字典的属性,列表中所有字典都会一起改变。
所以只有是在循环中每次都创建一个新的字典,让列表中每个字典都是不同的地址。
如li = [{"a":1} for i in range(10)]
列表?
l = [1 for i in range(10)]
或者
l = [1]*10