gpt4 book ai didi

Python 列表使用切片扩展功能

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:16 24 4
gpt4 key购买 nike

在开始一份新工作之前,我正在自学 Python。它是 Django 的工作,所以我必须坚持使用 2.7。因此,我正在阅读 Beginning Python由 Hetland 编写,不理解他使用切片复制 list.extend() 功能的示例。

首先,他展示了extend方法

a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)

产生 [1, 2, 3, 4, 5, 6]

接下来他演示了extend by slicing via

a = [1, 2, 3]
b = [4, 5, 6]
a[len(a):] = b

它产生与第一个示例完全相同的输出。

这是如何运作的? A 的长度为 3,终止切片索引点为空,表示它运行到列表的末尾。 b 值如何添加到 a

最佳答案

Python 的切片赋值语法意味着“让这个切片等于这个值,必要时扩大或缩小列表”。要完全理解它,您可能想尝试一些其他切片值:

a = [1, 2, 3]
b = [4, 5, 6]

首先,让我们用B替换部分A:

a[1:2] = b
print(a) # prints [1, 4, 5, 6, 3]

您可以通过分配给零长度切片来添加它们,而不是替换某些值:

a[1:1] = b
print(a) # prints [1, 4, 5, 6, 2, 3]

任何“越界”的切片都只是简单地指向列表一端或另一端的空白区域(太大的正数将指向刚好在末端的点,而太大的负数将指向刚好位于末端的点开始之前):

a[200:300] = b
print(a) # prints [1, 2, 3, 4, 5, 6]

您的示例代码仅使用列表末尾最“准确”的越界切片。我不认为这是您故意用于扩展的代码,但它可能用作您不需要使用特殊逻辑处理的边缘情况。

关于Python 列表使用切片扩展功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627315/

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