1586747768 发表于 2023-3-20 16:38:09

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

list1 = ['1.Jost do t ','2.一切皆有可能','3.让编程改变世界','4.Impossibleis Nothing']
list2 = ['4.阿迪达斯', '3.鱼C工作室','1.耐克']
list3 = for slogan in list1 for name in list2 if slogan == name]
for each in list3:
        print(list3)
列表三的代码不是很明白,求个大佬讲解一下

isdkz 发表于 2023-3-20 16:48:31

代码的功能是将列表1和列表2中的元素进行匹配,如果两者的首字母相同,就将它们合并成一个字符串,添加到列表3中。

具体来说,代码中的列表解析式:

for slogan in list1 for name in list2 if slogan == name]

可以拆分为以下部分:

for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append(name + ':' + slogan)


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

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

最终,列表3中的元素就是由列表1和列表2中匹配成功的元素组合而成的字符串。

1586747768 发表于 2023-3-21 09:17:15

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

请问大佬for循环遍历列表的元素,是将列表内所有的都遍历一遍吗。我理解的遍历是将list2中的'4.阿迪达斯', '3.鱼C工作室','1.耐克'这几个访问一次,没理解还要遍历这些元素里面的值。
页: [1]
查看完整版本: Python老版第十二讲的课后作业第六题求解