在python中创建具有特定大小的空列表

发布于 2021-02-02 23:15:37

我想创建一个可以容纳10个元素的空列表(或最好的方法)。

之后,我想在该列表中分配值,例如,应该显示0到9:

s1 = list();
for i in range(0,9):
   s1[i] = i

print  s1

但是,当我运行此代码时,它会产生错误,或者在其他情况下,它只会显示[](空)。

有人可以解释为什么吗?

关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你不能分配给类似的列表lst[i] = something,除非该列表已至少已使用i+1元素初始化。你需要使用append将元素添加到列表的末尾。lst.append(something)

    (如果使用字典,则可以使用分配符号)。

    创建一个空列表:

    >>> l = [None] * 10
    >>> l
    [None, None, None, None, None, None, None, None, None, None]
    

    为上述列表的现有元素分配一个值:

    >>> l[1] = 5
    >>> l
    [None, 5, None, None, None, None, None, None, None, None]
    

    请记住,类似的操作l[15] = 5仍然会失败,因为我们的列表只有10个元素。

    range(x)[0,1,2,... x-1]创建一个列表

    # 2.X only. Use list(range(10)) in 3.X.
    >>> l = range(10)
    >>> l
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    使用函数创建列表:

    >>> def display():
    ...     s1 = []
    ...     for i in range(9): # This is just to tell you how to create a list.
    ...         s1.append(i)
    ...     return s1
    ... 
    >>> print display()
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    

    列表理解(使用正方形,因为对于范围你不需要执行所有这些操作,你只需返回即可range(0,9)):

    >>> def display():
    ...     return [x**2 for x in range(9)]
    ... 
    >>> print display()
    [0, 1, 4, 9, 16, 25, 36, 49, 64]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看