python:使用元组来重新排列lis的内容

2024-10-02 00:25:45 发布

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

我是Python初学者。最近我看到这段代码:

>>> words = ['I', 'turned', 'off', 'the', 'spectroroute']
>>> words[2], words[3], words[4] = words[3], words[4], words[2]
>>> words
['I', 'turned', 'the', 'spectroroute', 'off']

我对第二行感到困惑。似乎使用了元组,但我不明白为什么列表的序列会更改为结果?在

看起来第二行在做这个:

^{pr2}$

我的问题是:为什么第二行的代码会改变列表?在

提前谢谢


Tags: the代码列表序列元组wordsoff初学者
2条回答

List是一个可变的数据结构。words[2] = 'foobar'将把列表中的第三个元素改为'foobar'。在

>>> words[2], words[3], words[4] = words[3], words[4], words[2]

首先计算右侧,结果字符串被分配到列表中的不同位置,从而更改它。在

你说得很对。它在右侧(内存中)创建一个元组,然后将其值解压到原始列表中,从而覆盖以前的索引。这就是为什么不需要tmp变量,因为它发生在内存中。在

它类似于这个概念:

a, b, c = (1, 2, 3)

相关问题 更多 >

    热门问题