gpt4 book ai didi

python - 何时以及为何使用 [:] in python

转载 作者:行者123 更新时间:2023-12-04 00:08:06 25 4
gpt4 key购买 nike

sentence = "Hello"
print sentence
print sentence[:]

两者输出相同的东西,即Hello

那么,何时以及为什么使用/不使用 [:]

谢谢! :)

最佳答案

作为 Nobi在评论中指出,已经有一个 question regarding Python's slicing notation .如该问题的答案所述,没有开始和结束值 ([:]) 的切片基本上会创建原始序列的副本。

但是,您遇到了字符串的特殊情况。由于字符串是不可变的,因此创建字符串的副本是没有意义的。由于您将无法修改字符串的任何实例,因此无需在内存中拥有多个实例。所以,基本上,使用 s[:] (作为 s 一个字符串)你并没有创建字符串的副本;该语句返回的字符串与 s 引用的字符串完全相同。一个简单的方法是使用 id()(对象标识)函数:

>>> l1 = [1, 2, 3]
>>> l2 = l1[:]
>>> id(l1)
3075103852L
>>> id(l2)
3072580172L

身份不同。但是,使用字符串:

>>> s1 = "Hello"
>>> s2 = s1[:]
>>> id(s1)
3072585984L
>>> id(s2)
3072585984L

身份相同,意味着两者都是同一个确切的对象。

关于python - 何时以及为何使用 [:] in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404340/

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