鱼C论坛

 找回密码
 立即注册
查看: 1766|回复: 8

[已解决]关于列表的简单问题,第十课课后作业,回答收鱼币了!

[复制链接]
发表于 2017-10-10 12:32:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> name = ['F', 'i', 's', 'h']
>>> name.append('C')
>>> name
['F', 'i', 's', 'h', 'C']
>>> name.extend(['.', 'c'])
>>> name
['F', 'i', 's', 'h', 'C', '.', 'c']
>>> name.append(['o', 'm'])
>>> name
['F', 'i', 's', 'h', 'C', '.', 'c', ['o', 'm']]


我就想知道,extend不是拓展列表的么,name.extend(['.', 'c']),那么name不是应该是['F', 'i', 's', 'h', 'C', ['.', 'c']]这样的吗?为什么是['F', 'i', 's', 'h', 'C', '.', 'c']这样呢??
最佳答案
2017-10-10 12:56:31
本帖最后由 songkunhuang 于 2017-10-10 12:59 编辑

详见内建方法说明:
extend(self, iterable):
        """ L.extend(iterable) -> None -- extend list by appending elements from the iterable """

append(self, p_object): # real signature unknown; restored from __doc__
        """ L.append(object) -> None -- append object to end """



所以
append是将参数中传递的对象原样加在列表尾部

extend的参数必须是可迭代对象,extend方法的功能是将可迭代对象中的元素依次取出,append到列表中
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-10 12:40:16 | 显示全部楼层

回帖奖励 +10 鱼币

1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
2. append() 方法向列表的尾部添加一个新的元素。
3. 列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

extend的解释没看太明白,琢磨了一下

>>> myList = [1,2.0,'a']
>>> myList
[1, 2.0, 'a']
>>> myList.append('APP')
>>> myList
[1, 2.0, 'a', 'APP']
>>> myList.extend([123,'abc'])
>>> myList
[1, 2.0, 'a', 'APP', 123, 'abc']
>>> myList.append(1,2)
Traceback (most recent call last):
  File "<pyshell#69>", line 1, in <module>
    myList.append(1,2)
TypeError: append() takes exactly one argument (2 given)
>>> myList.extend([1],[2])
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    myList.extend([1],[2])
TypeError: extend() takes exactly one argument (2 given)
>>>

结果如下:
append和extend都仅只可以接收一个参数,
append 任意,甚至是tuple
extend 只能是一个列表,其实上面已经说清楚了,是自己没看明白。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 12:56:31 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +10 鱼币

本帖最后由 songkunhuang 于 2017-10-10 12:59 编辑

详见内建方法说明:
extend(self, iterable):
        """ L.extend(iterable) -> None -- extend list by appending elements from the iterable """

append(self, p_object): # real signature unknown; restored from __doc__
        """ L.append(object) -> None -- append object to end """



所以
append是将参数中传递的对象原样加在列表尾部

extend的参数必须是可迭代对象,extend方法的功能是将可迭代对象中的元素依次取出,append到列表中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-10 13:04:03 | 显示全部楼层
$DIM 发表于 2017-10-10 12:40
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
2. append() 方法向列表的尾部添 ...

name = ['F', 'i', 's', 'h'],我纠结的是,我用的extend拓展的一个列表:name.extend(['.', 'c']),按道理来说,答案应该是:['F', 'i', 's', 'h', ['.', 'c']]这样的,但是实际输出却是['F', 'i', 's', 'h', '.', 'c']这样的。那两个中括号不见了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-10 13:04:58 | 显示全部楼层
songkunhuang 发表于 2017-10-10 12:56
详见内建方法说明:

name = ['F', 'i', 's', 'h'],我纠结的是,我用的extend拓展的一个列表:name.extend(['.', 'c']),按道理来说,答案应该是:['F', 'i', 's', 'h', ['.', 'c']]这样的,但是实际输出却是['F', 'i', 's', 'h', '.', 'c']这样的。那两个中括号不见了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 13:11:23 | 显示全部楼层
本帖最后由 songkunhuang 于 2017-10-10 13:15 编辑
唱离歌的老鼠 发表于 2017-10-10 13:04
name = ['F', 'i', 's', 'h'],我纠结的是,我用的extend拓展的一个列表:name.extend(['.', 'c']),按道 ...


extend方法会将['.', 'c']每个元素取出来,再append到name里。
即  
  1. temp = ['.', 'c']
  2. name.extend(temp)
复制代码


等价于
  1. temp = ['.', 'c']
  2. for  i  in  temp:
  3.     name.append(i)
复制代码


所谓列表的扩展就是
班级A扩展班级B,两个班级的人和在了一起,当然不存在班级B的标识了。

你试下

name.extend([['.', 'c'], 'o', 'm'])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 16:39:07 | 显示全部楼层

回帖奖励 +10 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-10 17:14:01 | 显示全部楼层

回帖奖励 +10 鱼币

直接追加的意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:20:24 | 显示全部楼层

回帖奖励 +10 鱼币

6666 最佳答案秒懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 23:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表