1

我正在尝试生成此列表:

["var",None,None,None,None,None]

这样做的捷径是什么?我想

list_2=["var",None for cnt in range(5)]

会工作,但它只会产生一个错误。我的第二次尝试,

list_1=["var"].extend([None for cnt in range(5)])

也不完全是一个成功的故事。有人可以帮忙吗?

谢谢!

4

3 回答 3

8

这可以简单地完成为

mylist = ["var"] + [None] * 5

原因,

["var"].extend([None for cnt in range(5)])

将不起作用,因为 extends 就地更改列表,但不返回原始列表。你本来可以做的

mylist = ["var"]
mylist.extend([None for cnt in range(5)])

你的第二次尝试

list_2=["var",None for cnt in range(5)]

也不正确

  1. 因为它是一个没有括号的生成器表达式。
  2. 即使它会起作用,它也会将您获得的内容添加为列表中的第二项
于 2012-11-09T07:56:09.967 回答
1

你可以这样做:

>>> list_1 = ["var"] + [None]*5
>>> list_1
['var', None, None, None, None, None]
于 2012-11-09T07:55:57.840 回答
0

蟒蛇 3.2

a=["var"]
_=[a.append(None)for v in range(5)] 

另一种扩展方式:

a=["var"]
b=[None]*5
a.extend(b)
于 2012-11-09T09:45:17.753 回答