奥特曼大战乌龟 发表于 2023-1-9 16:33:00

课后题

本帖最后由 奥特曼大战乌龟 于 2023-1-9 17:03 编辑

图1 是自己根据课后题 用笨法子自己写的图2 ,是课后题答案,结果是一样但显然我自己做的要复杂的多,可是又不明白上面那些名字都是怎么来的就很懵

奥特曼大战乌龟 发表于 2023-1-9 16:35:01

我图呢??

柿子饼同学 发表于 2023-1-9 16:59:51

{:10_277:}
你的贴子下面有一个编辑 , 点进去重传一下吧

奥特曼大战乌龟 发表于 2023-1-9 17:04:02

柿子饼同学 发表于 2023-1-9 16:59
你的贴子下面有一个编辑 , 点进去重传一下吧

有图啦有图啦

柿子饼同学 发表于 2023-1-9 22:03:37

创建 list3 的代码相当于以下代码 :
list3 = list()

for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append(name + ': ' + slogan)
list3 答案的写法是列表推导式 , 等价于上面的写法
不理解就照着多看看 , 也没什么好的方法
slogan 是 切片 语法 , 代表 除了前两个元素的slogan , 因为要把口号的前两个字符删掉
就是那个序号
观察两个列表发现对应的名字和扣号都有一样的序号 , 所以判断是否相符就是判断
第一个字符是否相同

ww185912 发表于 2023-1-10 15:08:49

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))就行,没必要进行迭代,全列表中一共就一个元素

奥特曼大战乌龟 发表于 2023-2-18 21:02:04

ww185912 发表于 2023-1-10 15:08
list3 = for slogan in list1 for name in list2 if slogan == name]
lis ...

谢谢,刚开始确实是有点懵
页: [1]
查看完整版本: 课后题