久远的心宿三 发表于 2020-9-23 11:12:46

老哥们,求个解释下这个python语句中的一些问题!

>>> list3 = for slogan in list1 for name in list2 if slogan == name]
这个语句中name和slogan应该都是临时变量吧?那么slogan后面这个是啥意思,为何要这么写呢? 还有这个if后面呢slogan == name是啥意思啊?slogan和name后面都加个[],完全就看不懂了,好难啊!!

久远的心宿三 发表于 2020-9-23 11:35:21

来人啊,给个讲解的出处也行啊{:5_100:}

sunrise085 发表于 2020-9-23 11:39:18

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

这是一个迭代。slogan从list1中寻找,name从list2中寻找,若两个字符串的第一个字符一样,则进行前面的拼接,即name + ':' + slogan
举例说明:
当name='1.耐克'时,slogan='1.just do it',此时list3中对应的元素由这个语句构成name+':'+slogan,即‘1.耐克’和':'和‘just do it’三个字符串拼接而成,也即‘1.耐克:just do it’,list3的其他元素类似。所以才会出现这个结果。

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)

久远的心宿三 发表于 2020-9-23 12:21:37

sunrise085 发表于 2020-9-23 11:39
list3 = for slogan in list1 for name in list2 if slogan == name]

...

哎,迭代前面完全讲过啊,不知道后面会不会讲。。。slogne后面的是啥意思啊?迭代的固定形式吗?slogan == name的意思是判断俩个字符串的第一个字符是否一样嘛?

久远的心宿三 发表于 2020-9-23 19:12:55

{:5_100:}

久远的心宿三 发表于 2020-10-2 16:49:49

slogne意思为从这个字符串的第但三个元素开始算,避免把slogan='1.just do it'中的‘1和.’也也加上。。。slogan == name的意思是判断俩个字符串的第一个字符是否一样,即数字要匹配的上。
页: [1]
查看完整版本: 老哥们,求个解释下这个python语句中的一些问题!