鱼C论坛

 找回密码
 立即注册
查看: 1649|回复: 2

[已解决]Python老版第十二讲的课后作业第六题求解

[复制链接]
发表于 2023-3-20 16:38:09 | 显示全部楼层 |阅读模式

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

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

x
list1 = ['1.Jost do t ','2.一切皆有可能','3.让编程改变世界','4.Impossibleis Nothing']
list2 = ['4.阿迪达斯', '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(list3)
列表三的代码不是很明白,求个大佬讲解一下
最佳答案
2023-3-20 16:48:31
代码的功能是将列表1和列表2中的元素进行匹配,如果两者的首字母相同,就将它们合并成一个字符串,添加到列表3中。

具体来说,代码中的列表解析式:
[name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

可以拆分为以下部分:
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])

首先,外层的`for`循环遍历列表1中的元素。内层的`for`循环遍历列表2中的元素。`if`语句判断当前遍历到的两个元素的首字母是否相同。

如果相同,就将它们合并成一个字符串,其中`name + ':'`表示公司名和冒号的组合,`slogan[2:]`表示口号去掉序号后的部分。然后将这个字符串添加到列表3中。

最终,列表3中的元素就是由列表1和列表2中匹配成功的元素组合而成的字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-20 16:48:31 | 显示全部楼层    本楼为最佳答案   
代码的功能是将列表1和列表2中的元素进行匹配,如果两者的首字母相同,就将它们合并成一个字符串,添加到列表3中。

具体来说,代码中的列表解析式:
[name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

可以拆分为以下部分:
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])

首先,外层的`for`循环遍历列表1中的元素。内层的`for`循环遍历列表2中的元素。`if`语句判断当前遍历到的两个元素的首字母是否相同。

如果相同,就将它们合并成一个字符串,其中`name + ':'`表示公司名和冒号的组合,`slogan[2:]`表示口号去掉序号后的部分。然后将这个字符串添加到列表3中。

最终,列表3中的元素就是由列表1和列表2中匹配成功的元素组合而成的字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-21 09:17:15 | 显示全部楼层
isdkz 发表于 2023-3-20 16:48
代码的功能是将列表1和列表2中的元素进行匹配,如果两者的首字母相同,就将它们合并成一个字符串,添加到列 ...

请问大佬for循环遍历列表的元素,是将列表内所有的都遍历一遍吗。我理解的遍历是将list2中的'4.阿迪达斯', '3.鱼C工作室','1.耐克'这几个访问一次,没理解还要遍历这些元素里面的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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