我试图将前5个元素的列表初始化为空,然后追加到列表中。目的是当我将此列表写入csv文件时,输出将如下:,,,,,, a,b,c 这是我的代码:
l = list()
l[:5]=""
l.append('a')
当我打印出这个列表时,它只包含元素'a'。如何初始化列表,前5个元素是空的,当我打印出来时,它会显示类似[,,,,,'a']
的内容感谢
答案 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,2] * 2 = [1,2,1,2])
一起添加列表(例如[1,2] + [3,4] = [1,2,3,4])
以下是建议的结构:
a = 'new item'
l = [''] * 5 + a
>>> l
['', '', '', '', '', 'new item']