如何以Pythonic方式将列表所有元素改为True(优先单行实现)
Pythonic 方式将列表所有元素改为True
嘿,这有几个简洁的单行Python写法,完美替代普通for循环来完成这个需求:
列表推导式(最直观的Pythonic写法)
这种方式遍历原列表的每个元素位置,生成新的True元素,可读性拉满:mylist = [3,7,8,9,2,4,6] mylist = [True for _ in mylist]这里的
_是Python里常用的占位符,表示我们不需要用到原列表的元素值,只是需要遍历对应次数。乘法生成(最简洁的写法)
因为True是不可变的布尔类型,直接用列表乘法生成和原列表长度一致的全True列表,代码更短:mylist = [3,7,8,9,2,4,6] mylist = [True] * len(mylist)👉 小提醒:如果是可变对象(比如
[[]]),乘法会导致所有元素指向同一个引用,但这里用True完全不用担心这个问题。原地修改(保留原列表引用)
如果需要保持原列表的内存地址不变(比如其他地方还在引用这个列表),可以用切片赋值来原地修改:mylist = [3,7,8,9,2,4,6] mylist[:] = [True] * len(mylist)
内容的提问来源于stack exchange,提问作者pylist
相关产品推荐
相关产品推荐

