python 列表未被追加

python list not getting appended

列表未附加我想使用 for 循环为两个用户附加板列表我该怎么做

from random import randint
user1 = {
    "name":input("Enter your name"),
    "board":[]
}
user2 = {
    "name":input("Enter your name"),
    "board":[]
}
users = [user1, user2]
def set_board(users):
    for x in range(5):
        users["board"].append(x)
def print_board(users):
    for row in users["board"]:
        print(" ".join(row))
print("Let's start")
print(print_board(user1))
print(print_board(user2))

您永远不会调用 set_board() 函数。此外, print(print_board(user1)) 语句不会打印任何内容,因为 print_board() 中没有 return 值 => 只需调用 print_board(user1)

  1. 你从不打电话给set_board
  2. print_board 不 return 任何东西,所以你不能打印 return 值
  3. 您正在尝试为列表中的每个元素设置字典键,这是不可能的。

这是一个工作版本:

from random import randint
user1 = {
    "name":input("Enter your name"),
    "board":[]
}
user2 = {
    "name":input("Enter your name"),
    "board":[]
}
users = [user1, user2]    # Actually this is not used anymore

def set_board(user):
    for x in range(5):
        user["board"].append(x)

def print_board(user):
    print(' '.join(str(user["board"])))

print("Let's start")
set_board(user1)
set_board(user2)
print_board(user1)
print_board(user2)

正如其他人指出的那样,您实际上从未调用过 'set_board',但如果您调用了它就会失败。当您将整数附加到 users[[=​​20=]],而不是 user1['board'] 或 user2['board']。事实上,python 应该在您尝试进行该分配时抛出 TypeError。

TypeError: 列表索引必须是整数,而不是 str

类似于:

def set_board(users):
    for my_user in users:
        for x in range(5):
            my_user.append(x)

会将整数附加到每个用户(user1 和 user2)。 T