【问题标题】:what's the meaning of x[:]=y? [duplicate]x[:]=y 是什么意思? [复制]
【发布时间】:2016-07-18 23:27:13
【问题描述】:

一开始我试图理解[:],但我找不到任何文件提及它。学习 Python 高级语法的最佳地点在哪里? Google 搜索不会找到 [:]。但最后我想通了。我只是想知道哪里是学习 Python“技巧”的最佳地点。

例如:

def test(x, y):
    x[:] = y  
    #x = y

>>> a = [0.5,0.6]
>>> b = [0.3]
>>> test(a, b)
>>>
>>> print a
[0.3]  # [0.5,0.6] 

【问题讨论】:

  • 您在问两个问题:1)“x[:]=y 是什么意思?”和 2) “哪里是学习 Python 高级语法的最佳地点?”您真正想要回答哪个问题?
  • @xi_ 好吧,那个欺骗目标没有 x[:] = y 作为明确写出的替换列表内容的手段
  • 我实际上是在问第二个问题。 @抢劫

标签: python


【解决方案1】:

x[:] 表示整个序列。基本上是x[from:to]

省略from 表示从开头到to

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numbers[:5]
[0, 1, 2, 3, 4]

省略to 表示从from 到结尾。

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numbers[5:]
[5, 6, 7, 8, 9]

省略两者意味着整个列表。

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numbers[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

设置numbers[:]表示设置整个列表:

>>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numbers[:] = [1, 2, 3, 4]
>>> numbers
[1, 2, 3, 4]

请记住设置numbers[:] 会更改该列表并且不会创建新列表。该对象仍将具有相同的id()

【讨论】:

    【解决方案2】:

    您需要搜索的词是slicex[start:end:step]是完整的形式,可以省略任何一个使用默认值:start默认为0end默认为列表长度,step默认为1。所以@987654329 @ 的意思与x[0:len(x):1] 完全相同。您可以在以下位置找到更多信息 Expression section of the language referencesection four of the python tutorial might also be helpful

    【讨论】:

    【解决方案3】:

    符号x[:] 等价于x[0:n],其中nlen(x)。它指定了x 的元素范围,从0n-1(含)。

    读取时,会创建一个新列表、字符串或其他任何内容,其中包含指定范围的元素。

    当分配给时,指定范围的元素被破坏性地替换为原始元素。请注意,列表允许这样做,但字符串不允许这样做。

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 2019-12-23
      • 2012-01-09
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多