gpt4 book ai didi

python - Python列表切片[-1 :] and [-1]?之间有什么区别吗

转载 作者:太空狗 更新时间:2023-10-30 01:41:01 26 4
gpt4 key购买 nike

我读过一段这样的代码:

s = self.buffer_file.readline()
if s[-1:] == "\n":
return s

如果我这样做:

s = 'abc'
In [78]: id(s[-1:]), id(s[-1])
Out[78]: (140419827715248, 140419827715248)

In [79]: id(s[-1:]) is id(s[-1])
Out[79]: False

In [80]: id(s[-1:]) == id(s[-1])
Out[80]: True

对我来说没有意义,ID号相同,但ID不同。因此,由于某种原因,它们是不同的。

最佳答案

不同的是,对list进行切片的结果是list

x = [1, 2, 3]

print(x[-1]) # --> 3
print(x[-1:]) # --> [3]

第二种情况恰好是一个元素的列表,但它仍然是一个列表。

但是请注意,Python 没有与 str 类型不同的 char 类型,这意味着 str 上的元素访问和切片> 对象返回另一个 str 对象:

print("abcd"[-1])  # --> "d"
print("abcd"[-1:]) # --> "d"

使用例如 s[-1:]s[:1] 和字符串而不是 s[-1]< 的唯一优势s[0] 是切片表达式在作用于空字符串时不会引发运行时错误(元素访问所做的事情)...这可能允许代码简化:

if len(s) > 0 and s[0] == '*': ...
if s[:1] == '*': ...

关于python - Python列表切片[-1 :] and [-1]?之间有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33841023/

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