【问题标题】:What is the difference between list[1] and list[1:] in Python?Python 中的 list[1] 和 list[1:] 有什么区别?
【发布时间】:2012-09-26 13:30:03
【问题描述】:
>>> c=[1,2,3]
>>> c[1]=c 
>>> d=[1,2,3]
>>> d[1:]=d

>>> print(c)
[1, [...], 3] # Why does C become [1, [...], 3]?
>>> print(d)
[1, 1, 2, 3] # Why is d not [1, [...] ]?

请问,代码有什么不同吗?是:,还是别的什么?

【问题讨论】:

  • 为什么要在自身内部嵌套一个列表?

标签: python list variable-assignment


【解决方案1】:

您使用的是索引和切片分配,它们完全不同。

将此与在表达式中对列表进行索引和切片比较:

>>> c=[1,2,3]
>>> c[1]
2
>>> d=[1,2,3]
>>> d[1:]
[2, 3]

通过在列表索引中使用: 冒号,您要求的是一个切片,它始终是另一个列表。

在 Python 中,您可以为列表中的单个项目和列表的一部分分配值。

【讨论】:

    【解决方案2】:

    slicing 用于提取列表的sublist,而indexing 用于检索列表的特定元素

    slicedList = aList[beginIndex:endIndex]

    d[1:] 指的是对列表进行切片d - 指的是this。 - 这是切片

    c[1] 是列表c 的一个元素。 - 这是索引

    【讨论】:

      【解决方案3】:

      print(c) [1, [...], 3] # 为什么C变成了[1, [...], 3]?

      当您执行 c1 = c 时,您将 c 本身分配给 c 的第二个位置。这样您就可以创建循环引用。因此,解释器不会再次显示列表,而是显示 [...] 以指示其循环引用。 See this for more info

      【讨论】:

        猜你喜欢
        • 2011-04-07
        • 2010-10-15
        • 2019-01-08
        • 2022-06-13
        • 1970-01-01
        • 2011-05-04
        • 2019-02-05
        • 2020-08-20
        • 1970-01-01
        相关资源
        最近更新 更多