Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改元组中的列表?_Python_List - Fatal编程技术网

Python 如何更改元组中的列表?

Python 如何更改元组中的列表?,python,list,Python,List,我想更改下面元组中的第一个列表,以便将每个值增加1 matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15] matrix = [x+1 for x in matrix[0]] print(matrix) 运行该代码后,我收到一个列表[2,3,4,5,6]。我希望有人能给我一个提示,让代码返回元组的其余部分,如[2,3,4,5,6],[6,7,8,9,10],[11,12,13,14,15]这有点棘手,因为实际上您有一个元组而不是2D列表: &g

我想更改下面元组中的第一个列表,以便将每个值增加1

matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]

matrix = [x+1 for x in matrix[0]]

print(matrix)

运行该代码后,我收到一个列表[2,3,4,5,6]。我希望有人能给我一个提示,让代码返回元组的其余部分,如[2,3,4,5,6],[6,7,8,9,10],[11,12,13,14,15]

这有点棘手,因为实际上您有一个元组而不是2D列表:

>>> matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]
>>> ([1 + n for n in matrix[0]],) + matrix[1:]
([2, 3, 4, 5, 6], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15])

这有点棘手,因为实际上您有一个元组而不是2D列表:

>>> matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]
>>> ([1 + n for n in matrix[0]],) + matrix[1:]
([2, 3, 4, 5, 6], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15])
您可以(ab)使用切片操作,例如:

matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]
matrix[0][:] = [n + 1 for n in matrix[0]]
# ([2, 3, 4, 5, 6], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15])
这将替换元组的第一个列表,而不是创建一个新元组,并重新绑定
矩阵
名称-用于该用途。

您可以(ab)使用切片操作,例如:

matrix = [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]
matrix[0][:] = [n + 1 for n in matrix[0]]
# ([2, 3, 4, 5, 6], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15])

这将替换元组的第一个列表,而不是创建一个新的元组,并重新绑定
矩阵
名称,以供使用。

我意识到这涉及到重新表述您的问题,但如果您不想要的属性,则只需将其设置为2D列表即可。鉴于您希望更改这些值,您可能确实希望它是可变的

代码将是:

matrix = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
matrix[0] = [x + 1 for x in matrix[0]]
print(matrix)

此外,我还添加了一些空格。这只是一个小问题,但建议在逗号后和二进制运算符周围使用空格,如
+

我知道这涉及到重新格式化问题,但如果您不想使用的属性,则只需将其设置为2D列表即可。鉴于您希望更改这些值,您可能确实希望它是可变的

代码将是:

matrix = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
matrix[0] = [x + 1 for x in matrix[0]]
print(matrix)

此外,我还添加了一些空格。这只是一个小东西,但建议在逗号后和二进制运算符周围使用空格,如
+

您想要的确切输出是什么?@thefourtheye预期输出应该是[2,3,4,5,6],[6,7,8,9,10],[11,12,13,14,15]
矩阵=[x+1代表矩阵[0]],矩阵[1],矩阵[2]
?您想要的确切输出是什么?@四个期望输出应该是[2,3,4,5,6],[6,7,8,9,10],[11,12,13,14,15]
矩阵=[x+1 for x in matrix[0]],矩阵[1],矩阵[2]
?尽管元组类型本身是不可变的,但其元素可能包含仍然可以修改的可变元素,这取决于OP想要什么,对元素进行更改时,没有必要将其设置为列表列表列表,而不是列表元组。我同意,但我认为有必要质疑是否需要将元组作为另一个可能的答案,考虑到您和wim提供了其他合理的建议。您似乎正确地猜测了OP-有一个+1:p虽然元组类型本身是不可变的,但其元素可能包含仍然可以修改的可变元素-根据OP的需要,不必将其设置为列表列表列表,而不是列表元组,对元素进行更改。我同意,但考虑到您和wim提供了其他合理的建议,我认为有必要质疑是否需要一个元组作为另一个可能的答案。看来您猜对了OP-a+1:p