新人问个关于切片赋值的问题
l = list(range(10))我想要:
l = * 5
这种方法在等号右边会创建一个新的list,当我的切片比较大的时候会有问题
使用list comperhension或者itertools.repeat也是相同的问题
直接使用循环挨个更新,那时间复杂度又变成了O(n)
python里有没有更优雅一点的写法来实现这个事情? 当我的切片比较大的时候会有问题
你说的问题是啥 希望对你有帮助:(优雅赋值){:10_277:} arr = list(range(10))
arr = arr[:2] + *5 + arr
print(arr) 比较大的时候不推荐使用列表 而是使用生成器函数(含有yield的函数) 或生成器表达式(就是列表表达式的中括号换成小括号) kogawananari 发表于 2021-10-28 22:23
比较大的时候不推荐使用列表 而是使用生成器函数(含有yield的函数) 或生成器表达式(就是列表表达式的中 ...
itertools.chain可以拼接不同的可迭代对象
itertools.chain( range(0,2) ,itertools.repeat(100, 5) , range(6,10))岂不美哉
页:
[1]