包含元素的列表:
for(b = 0; b < 5; b++)
只想将其所有值更改为true
mylist = [3,7,8,9,2,4,6]
我可以用for循环来做。
希望用pythonic方式做,最好是一个班轮
答案 0 :(得分:7)
mylist = [True for _ in mylist]
答案 1 :(得分:5)
有几种方法可以做到这一点(这样我们在Perl-land中比Python更多):
# List duplication
mylist = [True] * len(mylist)
# Comprehensions
mylist = [True for x in mylist]
# Fill with itertools
from itertools import repeat
mylist = repeat(True, len(mylist) - 1)
所有这些用新列表替换<{em>绑定到mylist
的给定列表。如果要改变mylist
指向就地的列表,可以使用索引编号:
# Assignment (mutates existing list)
mylist[:] = [True] * len(mylist)
答案 2 :(得分:2)
您可以将lambda
与map
功能
In [11]: mylist = [3,7,8,9,2,4,6]
#python 2.7
In [12]: mylist = map(lambda x: True,mylist)
#python 3.x
In [12]: mylist = list(map(lambda x: True,mylist))
In [13]: mylist
Out[13]: [True, True, True, True, True, True, True]
答案 3 :(得分:2)
这应该适合你:
>>> mylist = [True] * len(mylist)
说明:使用默认值初始化列表= True,大小与现有列表相同。