wzk_python 发表于 2020-5-23 09:24:03

第十二讲,第六题


list3 = for slogan in list1 for name in list2 if slogan == name]   #被涂鸦部分的代码

谁能解释这段代码

Twilight6 发表于 2020-5-23 09:26:27

本帖最后由 Twilight6 于 2020-5-23 09:28 编辑

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)

就是只要 for循环过程中if slogan == name 这个条件成立 就将 name + ':' + slogan 其加入列表list3 之中

wzk_python 发表于 2020-5-23 09:35:41

Twilight6 发表于 2020-5-23 09:26
list3 = for slogan in list1 for name in list2 if slogan == name]


slogan,从2开始是什么意思啊

Twilight6 发表于 2020-5-23 09:38:33

本帖最后由 Twilight6 于 2020-5-23 09:43 编辑

wzk_python 发表于 2020-5-23 09:35
slogan,从2开始是什么意思啊

切片 操作从第三个 取到最后一个的

比如 slogan= ['aaa','cccc','ddd','ffff','tttt]
对应位置参数为    0       1      2   3      4

则 slogan = ['ddd','ffff','tttt']切片操作有默认值 比如你这 slogan 只填了start = 2 后面的 end ,step 没填 则就为默认值  

start参数若没填 默认值为 0end 默认值为 len(slogan) 的长度step默认值为 1

wzk_python 发表于 2020-5-23 09:47:31

Twilight6 发表于 2020-5-23 09:38
切片 操作从第三个 取到最后一个的

比如 slogan= ['aaa','cccc','ddd','ffff','tttt]


我是不知道这里为什么用切片操作,而且是从2开始切。

Twilight6 发表于 2020-5-23 09:50:27

wzk_python 发表于 2020-5-23 09:47
我是不知道这里为什么用切片操作,而且是从2开始切。

https://xxx.ilovefishc.com/forum/201310/12/044035qddrqkmrqod4cqmr.png
因为题目要求得到这样的结果~

wzk_python 发表于 2020-5-23 09:55:52

Twilight6 发表于 2020-5-23 09:50
因为题目要求得到这样的结果~

多谢答复,我再好好理解理解{:5_108:}
页: [1]
查看完整版本: 第十二讲,第六题