明眸无恙 发表于 2018-8-23 20:43:02

第12课后习题 第6题 列表推导式的问题

烦请各路大神,第三行的列表推导式是什么意思?谢谢解答~

list1 = ['1,just do it','2,一切皆有可能','3,让编程改变世界',]
list2 = ['3,鱼c工作室’,‘1,耐克','2,李宁']
list3 = for slogn in list1 for name in list2 if name == slogn]
for each in list3:
    print(each)


这是list3的列表推导式的解析式:

for slogn in list1:
    for name in list2:
      if name == slogn:
            list3 = ]
解析式的第三行、第四行是什么意思?

冬雪雪冬 发表于 2018-8-23 20:52:30

      if name == slogn:   #如果list2中的元素的第0个字符(即前面的数字)与list1中元素的第0个字符相同
            list3 = ]#新列表为list2中的元素加上':'加上list1中元素的第2个字符以后的字符串

claws0n 发表于 2018-8-23 20:54:04

for slogn in list1:                     # list1 的元素用 slogan 表示
    for name in list2:               # list2 的元素用 name 表示
      if name == slogn:   # 如果元素的第一个子元素一样(前面的数字)
            list3 = ]    # name + ':' + slogan[去掉前面两个元素,即数字与逗号], 把这些东西并起来

明眸无恙 发表于 2018-8-23 21:02:08

claws0n 发表于 2018-8-23 20:54
for slogn in list1:                     # list1 的元素用 slogan 表示
    for name in list2:         ...

谢谢~

明眸无恙 发表于 2018-8-23 21:03:47

冬雪雪冬 发表于 2018-8-23 20:52
if name == slogn:   #如果list2中的元素的第0个字符(即前面的数字)与list1中元素的第0个 ...

谢谢大神~
页: [1]
查看完整版本: 第12课后习题 第6题 列表推导式的问题