使用列表推导式生成常量列表?

4
我在想如何使用Python推导式生成常量列表?
例如,如果我想生成一个包含100个数字5的列表,应该怎样做?
我有些困惑,因为我跟踪列表中元素数量的方式与我想要输出的方式不同。

对于不可变对象来说,[5] * 100 是一个简单的选择。 - Fred Foo
2个回答

5
对于不可变的值,只需将列表 乘以 即可:
count = 100
[5] * count

对于可变值,请使用列表推导:

count = 100
[{'foo': 5} for _ in xrange(count)]

这里的_只是一个约定,它意味着我们在循环本身中忽略了循环目标名称。

我明白了,我的列表推导式比常数乘法要复杂一些,但第二个例子中的原则是有效的! - goldisfine

2

您可以做以下事情:

my_list = [5 for _ in xrange(100)]

您还可以进行以下操作:

import itertools
my_list = list(itertools.repeat(5, 100))

谢谢Simeon!那么'_'具体是如何工作的呢?它只是一个在范围内迭代的计数器吗? - goldisfine
@goldisfine 是一个变量,但没有给它命名。你也可以在那里放其他东西。 - Simeon Visser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接