如何在列表中添加列表中的元素?

2024-10-02 12:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将元素附加到主列表中的子列表中。要追加的元素数对应于主列表中的子列表位置

我的代码:

# define the maximum level of the game
max_level = 3
# create list with length = level
lsx = []
# append empty lists in lsy for every element in lsx
empty = []
lsy = []

def create_list(max_level):
    for i in range(max_level):
        integer = random.randint(1,5)
        lsx.append(integer)
    for j in lsx:
        lsy.append(empty)
    return(lsy)

create_list(max_level)

输出:

[[], [], []]

期望输出:

[[1], [1, 2], [1, 2, 3]]

Tags: the代码in元素列表forcreateinteger
2条回答

您不需要(也不应该)使用globals。当多次将empty附加到lsy时,您是在附加同一个对象-更改一个对象也会更改另一个对象

可以在循环内创建嵌套列表:

import random


def create_list(max_level):
    # top level list
    res = []
    for i in range(max_level):
        # nested list
        next_l = []
        for j in range(i+1):
            next_l.append(random.randint(1, 5))
        res.append(next_l)
    return res

print(create_list(3))

输出:

[[5], [4, 3], [2, 3, 2]]

嗯,这可能行得通

def create_list(max_level):
    res = []
    for i in range(max_level):
        i += 1
        res.append(list(range(i+1))[1:])
    return res

输出

>>> create_list(5)
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]

相关问题 更多 >

    热门问题