Create an empty list in python with certain size

后端 未结 15 1438
有刺的猬
有刺的猬 2020-11-22 12:00

I want to create an empty list (or whatever is the best way) that can hold 10 elements.

After that I want to assign values in that list, for example this is supposed

15条回答
  •  无人及你
    2020-11-22 12:24

    You cannot assign to a list like lst[i] = something, unless the list already is initialized with at least i+1 elements. You need to use append to add elements to the end of the list. lst.append(something).

    (You could use the assignment notation if you were using a dictionary).

    Creating an empty list:

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

    Assigning a value to an existing element of the above list:

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

    Keep in mind that something like l[15] = 5 would still fail, as our list has only 10 elements.

    range(x) creates a list from [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]
    

    Using a function to create a list:

    >>> 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]
    

    List comprehension (Using the squares because for range you don't need to do all this, you can just return range(0,9) ):

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

提交回复
热议问题