Geeker_odd 发表于 2021-5-19 15:20:57

列表添加元素extend方法

请教学友,如下代码:

A =
B =
C = A. extend(B)
type(C) = None

为什么?

如果是直接输入:A. extend(B), 则 A =

但是,如果是 C = A. extend(B) 或 A = A. extend(B), 则返回None!

这是为什么?

Peteryo01223 发表于 2021-5-19 16:07:03

本帖最后由 Peteryo01223 于 2021-5-19 16:09 编辑

extend() 是一个函数。C是一个变量。用A. extend(B), 赋值一个变量C,你是试图,把一个没有返回值、但会在已存在的列表中添加新的列表内容,的操作,赋值到一个变量上。所以,python懵了。

以下是可以的。
>>> A =
>>> B =
>>> A. extend(B)
>>> C = A
>>> type(C)
<class 'list'>

Geeker_odd 发表于 2021-5-20 09:19:35

谢谢!虽然不是太明白。

JessLm 发表于 2021-5-20 11:31:02

extend这个方法是没有返回值的,所以A. extend(B)会返回None,也就是返回空的。所以C =A. extend(B)就是把A. extend(B)的结果(None)赋值给C,同理,A = A. extend(B)就是把 A. extend(B) 的结果(None)赋值给A。那A和C得到结果可想而知,就是None

Geeker_odd 发表于 2021-5-20 14:16:14

数列不是这个extend的返回值吗?

一池澄澈 发表于 2021-5-20 15:05:55

Geeker_odd 发表于 2021-5-20 14:16
数列不是这个extend的返回值吗?

这个数列不能叫做返回值,而是进行扩列操作后的A数列
A.extend(B) 是一种操作行为,这个行为只改变A,这个行为本身不能作为结果 赋予 C

Geeker_odd 发表于 2021-5-20 16:12:49

懂了!非常感谢!
页: [1]
查看完整版本: 列表添加元素extend方法