chmod 发表于 2018-4-25 13:00:20

谁来帮忙解释下list3啊。看不懂了

list3 = for slogan in list1 for name in list2 if slogan == name]

list1 = ['1.A','2.B','3.C','4.D','5.E']
list2 = ['5.a','4.b','3.c','2.d','1.e']

lotus8171213 发表于 2018-4-25 13:18:56

list3 = []
for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append(name + ':'+ slogan)

chmod 发表于 2018-4-25 13:31:06

lotus8171213 发表于 2018-4-25 13:18
list3 = []
for slogan in list1:
    for name in list2:


list1是 1.A
list2是 1.e
永远不会相等啊?

BngThea 发表于 2018-4-25 13:34:04

有切片[:2]表示取前面两个字符

chmod 发表于 2018-4-25 13:37:15

BngThea 发表于 2018-4-25 13:34
有切片[:2]表示取前面两个字符

就是slogan == name这不懂
帮解释下吧~
谢谢

BngThea 发表于 2018-4-25 13:40:09

chmod 发表于 2018-4-25 13:37
就是slogan == name这不懂
帮解释下吧~
谢谢

第一个字符相同

lotus8171213 发表于 2018-4-25 13:43:34

chmod 发表于 2018-4-25 13:31
list1是 1.A
list2是 1.e
永远不会相等啊?

list3 = []
for slogan in list1:
    for name in list2:
      print('slogan='+slogan)
      print('name='+name)
      if slogan == name:
            print('slogan='+slogan)
            print('name='+name)
            list3.append(name + ':'+ slogan)

遇事不决print一下
其实可以把两个list的参数弄少点 再看会清楚点
第二层循环的时候 第一层循环的值是不动的
第二层循环找到与第一层循环值一样的时候,就append了

chmod 发表于 2018-4-25 13:47:26

BngThea 发表于 2018-4-25 13:40
第一个字符相同

但是slogan会返回1.A啊C:\Users\SQ\Desktop\1.png

BngThea 发表于 2018-4-25 13:49:23

chmod 发表于 2018-4-25 13:47
但是slogan会返回1.A啊

slogan是list1中的一个元素,又不是list1,怎么就会返回1.A ?

chmod 发表于 2018-4-25 13:57:24

不懂了 print一下!受教了 .
谢谢

alltolove 发表于 2018-4-25 13:59:00

楼上的意思就是1==1而不是1.A==1.e,就只取前面的字符1后面 .a就去掉了
页: [1]
查看完整版本: 谁来帮忙解释下list3啊。看不懂了