为了账号安全,请及时绑定邮箱和手机立即绑定

python 中的二维列表行为很奇怪

python 中的二维列表行为很奇怪

神不在的星期二 2023-06-27 14:06:31
我想创建一个在 python 中旋转二维列表的函数,如下所示:输入: [[0,1,2,3],[0,1,2,3]]输出:[[0,0],[1,1],[2,2],[3,3]]我想首先创建一个包含占位符 None 值的列表,以便稍后可以轻松地输入这些值。我想出了这个代码:matrix = [[0,1,2,3],[0,1,2,3]]#debugging value, will be an argument of the function. output = []row= []for x in range(len(matrix)):    row.append(None)for x in range(len(matrix[0])):    output.append(row)因此,这为现在组织数据创建了一个很好的起点,但现在发生了一些奇怪的事情。如果我现在尝试运行类似的东西output[0][0] = 5,输出变量突然具有以下值: [[5, None], [5, None], [5, None], [5, None]],而这一行应该只影响列表中的第一个列表。更奇怪的是,现在临时列表行的值为[5, None]。该行根本不应该影响该变量。我是否遗漏了什么,或者这是Python中的一个错误?我在 Windows 上的 Python 3.7.6 和 Linux 上的 Python 3.8.2 上尝试过此操作。有人可以帮我解决这个问题吗?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

您可以使用 zip()


lst_input=[[0,1,2,3],[0,1,2,3]]


def rotate_list(lst_input):

    lst_output=[]

    for a,b in zip(lst_input[0],lst_input[1]):

        lst_output.append([a,b])

    return lst_output


print(rotate_list(lst_input))

#[[0, 0], [1, 1], [2, 2], [3, 3]]


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信