星奏 发表于 2020-6-26 13:57:14

求零基础学习python的十二讲的第六题思维导图,看的不是很懂

求零基础学习python的十二讲的第六题思维导图,看的不是很懂

青出于蓝 发表于 2020-6-26 14:21:33

发题~

星奏 发表于 2020-6-26 14:38:39

list1 = ['1.Jost fo It', '2.一切皆有可能', '3.让编程改变世界', '4.Impossible is Nothing']
list2 = ['4.阿迪达斯', '2.李宁', '3.鱼C工作室', '1.耐克']
list3 = for slogan in list1 for name in list2 if slogan == name]
for each in list3:
    print(each)

星奏 发表于 2020-6-26 14:41:48

name + ':' + slogan for slogan in list1 for name in list2 if slogan == name
这里不是很懂

Twilight6 发表于 2020-6-26 14:48:48

本帖最后由 Twilight6 于 2020-6-26 14:50 编辑

星奏 发表于 2020-6-26 14:41
name + ':' + slogan for slogan in list1 for name in list2 if slogan == name
这里不是很懂




举几个例子吧,有助于你路径列表推导式,(假设已经给出了列表 ls1,ls2):
temp =
最简单的列表推导式:将 遍历 ls1中的元素 依次赋值给 x 加入列表中去
可以分解成:
temp = []
for x in ls1:
    temp.append(x)
temp =
将遍历ls1中的元素,将符合条件的元素加的列表中
可以分解成这样:temp = []
for x in ls1:
    if <条件>:
      temp.append(x)
temp =
将 x 遍历 ls1 中的元素,然后 i 遍历 ls2 的元素 将符合条件后的 x+i 的结果依次加入列表中
可以分解成这样:temp = []
for x in ls1:
    for i in ls2:
      if <条件>:
            temp.append(x+i)
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)

当条件满足时候,把循环到的 name +":"+ slogan 加入列表中去 ,这里的 slogan 切片只是为了去掉 字符串前面的编号.   

比如   1.耐克就是去掉1.留下耐克两个字符

这样看能看懂嘛?

heidern0612 发表于 2020-6-26 15:19:06

请看这个:戳我前进

新手区置顶最佳答案的连接就是这个,多用论坛搜索。

星奏 发表于 2020-6-26 16:38:29

ok, 了解了。
页: [1]
查看完整版本: 求零基础学习python的十二讲的第六题思维导图,看的不是很懂