鱼C论坛

 找回密码
 立即注册
查看: 3694|回复: 4

[已解决]关于列表的append 和 extend

[复制链接]
发表于 2018-2-13 17:00:21 | 显示全部楼层 |阅读模式

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

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

x
我记得小甲鱼视频里只是提了一下
说append一次只能添加一个元素,并且只能在最后
而extend是添加一个列表



那么课后作业来了
list3=[]
list1=["1.Just do It","2.一切皆有可能","3.让编程改变世界","4.Impossible is nothing"]
list2=["4.阿迪达斯","2.李宁","3.鱼C工作室","1.耐克"]
for name in list2:
    for slogan in list1:
        if name[0]== slogan[0]:
            list3.append(name + ":"+slogan[2:])
list3.sort()

为了实现这个
>>> list3
['1.耐克:Just do It', '2.李宁:一切皆有可能', '3.鱼C工作室:让编程改变世界', '4.阿迪达斯:Impossible is nothing']

用append是可以          我还能勉强理解这个append 因为我觉得name 和slogan 有很多元素,他们组合之后成为list3中的元素
但是!但是!但是!!!!
extend 我就有点理解不了了

如果上面的append换成extend
list3就变成
>>> list3
['4', '.', '阿', '迪', '达', '斯', ':', 'I', 'm', 'p', 'o', 's', 's', 'i', 'b', 'l', 'e', ' ', 'i', 's', ' ', 'n', 'o', 't', 'h', 'i', 'n', 'g', '2', '.', '李', '宁', ':', '一', '切', '皆', '有', '可', '能', '3', '.', '鱼', 'C', '工', '作', '室', ':', '让', '编', '程', '改', '变', '世', '界', '1', '.', '耐', '克', ':', 'J', 'u', 's', 't', ' ', 'd', 'o', ' ', 'I', 't']







...........
求大神指教
我在网上搜了一下,举得例子我也能稍微看懂,但是就在这里...........
最佳答案
2018-2-13 17:16:33
  1. L = ['Google', 'Runoob', 'Taobao']
  2. L.extend('12') # 可迭代对象是字符串
  3. L.extend([3,4]) # 可迭代对象是列表
  4. L.extend((5,6)) # 可迭代对象是元祖
  5. L.extend({7:'seven',8:'eight'}) # 可迭代对象是字典(默认是键)
  6. print ("扩展后的列表:", L)
  7. L = ['Google', 'Runoob', 'Taobao', '1', '2', 3, 4, 5, 6, 8, 7]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-13 17:16:33 | 显示全部楼层    本楼为最佳答案   
  1. L = ['Google', 'Runoob', 'Taobao']
  2. L.extend('12') # 可迭代对象是字符串
  3. L.extend([3,4]) # 可迭代对象是列表
  4. L.extend((5,6)) # 可迭代对象是元祖
  5. L.extend({7:'seven',8:'eight'}) # 可迭代对象是字典(默认是键)
  6. print ("扩展后的列表:", L)
  7. L = ['Google', 'Runoob', 'Taobao', '1', '2', 3, 4, 5, 6, 8, 7]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 17:18:05 | 显示全部楼层
你这里 extend() 方法里的可迭代对象是字符串,会按顺序添加字符串中的元素,所以才会变成这个样子。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 17:18:55 | 显示全部楼层
extend传入的是一个可迭代对象,
a.extend([1,2,3])
相当于
for each in [1,2,3]:
    a.append(each)

如果传入的是一个字符串的话,就变成了这样:
for each in "I love fishc.com":
    a.append(each)
那么a就是['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'c', '.', 'c', 'o', 'm']
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 17:59:42 From FishC Mobile | 显示全部楼层
extend会将你传入的变量当做一个列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 14:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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