gpt4 book ai didi

不分配变量的 Python 列表

转载 作者:行者123 更新时间:2023-11-28 21:22:43 25 4
gpt4 key购买 nike

嗯,我可以很容易地在 Python 上使用这段代码而不会出错:

>>>> a = range(5, 10)
>>>> b = range(15, 20)
>>>> a.extend(b)
>>>> a
[5, 6, 7, 8, 9, 15, 16, 17, 18, 19]

我也可以使用这个方法,而不使用 b:

>>>> a = range(5, 10)
>>>> a.extend(range(15, 20))
>>>> a
[5, 6, 7, 8, 9, 15, 16, 17, 18, 19]

但我不明白为什么在这种情况下没有发生同样的事情:

>>>> [5, 6, 7, 8, 9].extend(range(15, 20))
>>>>

a 不应该与上面的列表相同吗?我只看到我对初始状态进行硬编码的区别。我真的可以理解,当硬编码列表不在变量或其他东西中时无法修改,但是......

>>>> [5, 6, 7, 8, 9][2]
7

这让我很吃惊。更奇怪的是:

>>>> [5, 6, 7, 8, 7].count(7)
2
>>>> [5, 6, 7, 8, 7].index(8)
3

为什么一些列表方法可以在硬编码/非变量列表上工作,而其他方法可以?

我不是很喜欢使用它,更多的是为了个人知识和对语言的理解,而不是实用性。

最佳答案

  1. extend 不返回值。因此,打印 a.extend(b) 将是 None。因此,如果您有 a = [5, 6, 7, 8, 9].extend(range(15, 20)) 并打印 a 它将显示 。一种解决方法是连接列表 a = [5, 6, 7, 8, 9] + range(15, 20)

  2. [5, 6, 7, 8, 9][2] - 一切正常,因为它从 0 开始计算元素。它不是修改列表,它只是从列表中返回某个元素。

  3. [5, 6, 7, 8, 7].count(7)[5, 6, 7, 8, 7].index(8) 显示预期的输出。第一个是 7 在列表中出现的次数,第二个是数字 8 的索引(同样,从 0 开始计数)。

因此,总而言之,在您生成的所有示例中,硬编码列表的使用都符合预期。

关于不分配变量的 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com