咸鱼怪 发表于 2020-10-13 20:42:34

课后练习请问这个怎么理解?

>>> list2 = ['1.q','2.w','3.e','4.r']
>>> list3 = ['2.5','1.6','4.7','1,8']
>>> list3 = for slogan in list2 for name in list3 if slogan == name]
>>> for each in list3:
        print(each)

       
1.6:q
1,8:q
2.5:w
4.7:r
请问大佬这个是什么意思?
slogan for slogan in list2
还有这个
if slogan == name
为什么是1.6:q而不是1.6:1.q

不能懒 发表于 2020-10-13 20:49:39

列表推导式

昨非 发表于 2020-10-13 20:49:58

slogan for slogan in list2

这里相当于遍历slogan列表,每一个slogan都是列表里的元素,
而slogan,是列表的切片操作,取元素slogan第三个及其以后的字符

slogan和name就是每个元素(字符串)的第一个字符,即序号,通过if slogan == name的判断,来将序号相同的字符串拼接在一起

笨鸟学飞 发表于 2020-10-14 16:57:45

本帖最后由 笨鸟学飞 于 2020-10-14 17:02 编辑

list3 = for slogan in list2 for name in list3 if slogan == name]
是列表推导式:
等同于:
for slogan in list2:         #遍历列表list2,首次循环slogan = '1.q'
    for name in list3:         #遍历列表list3,第2次时循环 name = '1.6'
      if slogan == name:#判断序号是否相等
            list3 = name + ":"+slogan#如果相等,则把字符串切片,顺序是0,1,2,也就是6q
页: [1]
查看完整版本: 课后练习请问这个怎么理解?