initiliase列表与空元素python

时间:2015-09-14 18:12:43

标签: python

我试图将前5个元素的列表初始化为空,然后追加到列表中。目的是当我将此列表写入csv文件时,输出将如下:,,,,,, a,b,c 这是我的代码:

l = list()
l[:5]=""
l.append('a')

当我打印出这个列表时,它只包含元素'a'。如何初始化列表,前5个元素是空的,当我打印出来时,它会显示类似[,,,,,'a']

的内容

感谢

5 个答案:

答案 0 :(得分:5)

对于像string这样的不可变类型,你可以这样做 -

lst = [""] * 5

虽然为可变元素(如列表等)执行此操作可能会导致问题,因为所有五个元素都指向同一个对象,因此改变其中一个元素会导致其他元素反映的更改(因为它们是相同的对象)。

答案 1 :(得分:1)

使用无类型。

    >>> lst = [None] * 5
    >>> lst.append("a")
    >>> lst
    [None, None, None, None, None, 'a']

答案 2 :(得分:1)

如果你[ [] ] * 10,指针将被复制到所有项目:

>>> a = [[]] * 10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> b = [ [] for i in range(10) ]
>>> b
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(5)
>>> a
[[5], [5], [5], [5], [5], [5], [5], [5], [5], [5]]
>>> b[0].append(5)
>>> b
[[5], [], [], [], [], [], [], [], [], []]

答案 3 :(得分:0)

你可以这样做:

l = [''] * 5
l.append('a')
print l

答案 4 :(得分:0)

请记住,您可以:

  1. 将列表相乘以重复它们(例如[1,2] * 2 = [1,2,1,2])

  2. 一起添加列表(例如[1,2] + [3,4] = [1,2,3,4])

  3. 以下是建议的结构:

    a = 'new item'
    l = [''] * 5 + a
    >>> l
    ['', '', '', '', '', 'new item']