课后题
本帖最后由 奥特曼大战乌龟 于 2023-1-9 17:03 编辑图1 是自己根据课后题 用笨法子自己写的图2 ,是课后题答案,结果是一样但显然我自己做的要复杂的多,可是又不明白上面那些名字都是怎么来的就很懵 我图呢?? {:10_277:}
你的贴子下面有一个编辑 , 点进去重传一下吧
柿子饼同学 发表于 2023-1-9 16:59
你的贴子下面有一个编辑 , 点进去重传一下吧
有图啦有图啦 创建 list3 的代码相当于以下代码 :
list3 = list()
for slogan in list1:
for name in list2:
if slogan == name:
list3.append(name + ': ' + slogan)
list3 答案的写法是列表推导式 , 等价于上面的写法
不理解就照着多看看 , 也没什么好的方法
slogan 是 切片 语法 , 代表 除了前两个元素的slogan , 因为要把口号的前两个字符删掉
就是那个序号
观察两个列表发现对应的名字和扣号都有一样的序号 , 所以判断是否相符就是判断
第一个字符是否相同
list3 = for slogan in list1 for name in list2 if slogan == name]
list3是一个嵌套的列表推导式,list3 = for slogan in list1 for name in list2 if slogan == name]写成普通形式:
list3 = []
for slogan in list1:
for name in list2:
if slogan == name:
list3.append(name + ":" + slogan)
list3 = for slogan in list1 for name in list2 if slogan == name]的执行顺序就和上面的代码一样:
1.先使用第一个循环体对list1列表进行迭代,并把每次迭代的对象给slogan变量
2.第一个循环体每迭代出一个对象,第二个循环体就开始对list2列表进行迭代,并把每次迭代的对象给name变量
3.当第二个循环体每迭代出一个对象,就将第一个循环体的对象与第二个循环体对象比较是否相等
4.若相等就根据表达式将对应变量添加进list3中
弱弱的说一句,你自己写的那个,里面的for语句是多余的,直接print(str(list3))就行,没必要进行迭代,全列表中一共就一个元素 ww185912 发表于 2023-1-10 15:08
list3 = for slogan in list1 for name in list2 if slogan == name]
lis ...
谢谢,刚开始确实是有点懵
页:
[1]