【发布时间】:2013-08-27 04:37:01
【问题描述】:
好吧,我可以在 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
为什么一些列表方法可以处理硬编码/非变量列表,而其他方法可以?
我不太喜欢使用它,这更多是为了个人知识和对语言的理解,而不是有用。
【问题讨论】:
标签: python list methods hardcode