鱼C论坛

 找回密码
 立即注册
查看: 2300|回复: 5

[已解决]旧版课后作业 12

[复制链接]
发表于 2021-4-30 09:13:09 | 显示全部楼层 |阅读模式

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

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

x

list1 = ['1.just do it ','2.一切皆有可能','3.让编程改变世界',"4.Impossible is nothing"]
list2 = ['4.阿迪达斯','5.李宁','3.鱼C工作室','1.耐克']
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
for each in list3:
    print(each)

list3 通过冒号进行分割
将list1传给name,list2传给slogan

对于最后的 if slogan[0] == name[0]

slogan[0] 是 1.just do it
name[0] 是 4.阿迪达斯

这边的判断有什么作用

百度之后显示序号相同的字符串,不应该是整一整个吗?
最佳答案
2021-4-30 09:31:39
本帖最后由 qq1151985918 于 2021-4-30 09:35 编辑

对于最后的 if slogan[0] == name[0]

slogan[0] 是 1.just do it
name[0] 是 4.阿迪达斯


同学你连最基本的  切片都没理解呢

slogan[0] 不是 1.just do it   list1[0] 才是
name[0] 不是 4.阿迪达斯  list2[0] 才是

slogan  和 name  是循环访问列表产生的临时变量
也就是说 slogan 是循环改变的,
可以是  '1.just do it '
也可以是  '2.一切皆有可能'
也可以是 '3.让编程改变世界'
还可以是"4.Impossible is nothing"

那么 slogan[0] 和 name[0] 都只是 前边的序号而已

所以这句代码通俗地讲,就是 当

两个列表中的两个元素分别比对 序号,
如果序号一致,那么就将他们组合到一起并添加到 list3 这个新列表
1.JPG
捕获.JPG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-30 09:30:15 | 显示全部楼层
本帖最后由 柿子饼同学 于 2021-4-30 09:42 编辑
list1 = ['1.just do it ','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2 = ['4.阿迪达斯','5.李宁','3.鱼C工作室','1.耐克']           
list3 =[]
for name in list2:
     for slogan in list1:
          if slogan[0] == name[0]:
               list3.append(name + ':' + slogan[2:])
          
print(list3)
这样是一样的
另外,列表下标list1[0]指的是列表中的第零个元素,而上面slogan[0]是list1 中每个元素的第零个东西
>>> a = ['520', '1314']
>>> a[0]
'520'
>>> for i in a:
        print(i[0])

5
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-30 09:31:39 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qq1151985918 于 2021-4-30 09:35 编辑

对于最后的 if slogan[0] == name[0]

slogan[0] 是 1.just do it
name[0] 是 4.阿迪达斯


同学你连最基本的  切片都没理解呢

slogan[0] 不是 1.just do it   list1[0] 才是
name[0] 不是 4.阿迪达斯  list2[0] 才是

slogan  和 name  是循环访问列表产生的临时变量
也就是说 slogan 是循环改变的,
可以是  '1.just do it '
也可以是  '2.一切皆有可能'
也可以是 '3.让编程改变世界'
还可以是"4.Impossible is nothing"

那么 slogan[0] 和 name[0] 都只是 前边的序号而已

所以这句代码通俗地讲,就是 当

两个列表中的两个元素分别比对 序号,
如果序号一致,那么就将他们组合到一起并添加到 list3 这个新列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-30 09:34:47 | 显示全部楼层
理解上有点不太对,name和slogan作为循环因子,表示的就是列表中每一个元素,也就是说name[0]和slogan[0]就代表前面的序号而不是整个元素。分解下来应该是:
list3 = []
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]
            list3.append(name+':'+slogan[2:])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-30 10:06:06 | 显示全部楼层
Hoiste 发表于 2021-4-30 09:34
理解上有点不太对,name和slogan作为循环因子,表示的就是列表中每一个元素,也就是说name[0]和slogan[0]就 ...

感谢拆解代码^-^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-30 10:07:00 | 显示全部楼层
柿子饼同学 发表于 2021-4-30 09:30
这样是一样的
另外,列表下标list1[0]指的是列表中的第零个元素,而上面slogan[0]是list1 中每个元素的第 ...

感谢举例
化繁为简
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 00:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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