Juniorboy 发表于 2020-6-5 22:31:16

列表推导式

>>> 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)

请问这个题slogan 这个是什么意思啊
最后的 if slogan == name 这个是把每一个元素看成了列表码,取第一个值比较,
如果您有时间的话,请说的详细点,最好整个题都讲一遍,谢谢您了

liuzhengyuan 发表于 2020-6-5 22:34:06

slogan 就是把前面的编号去掉
因为编号是前两个字符,所以用切片把前两个字符“切”掉

Twilight6 发表于 2020-6-5 22:36:12

请问这个题slogan 这个是什么意思啊
slogan 你想想位置参数第二个到最后少了什么, 就是把前面的 编号 和 . 给去掉的作用,
最后的 if slogan == name 这个是把每一个元素看成了列表吗?
不是 从列表取出来是什么就是什么,原本是字符串就还是字符串,这个是索引操作,字符串的第一个字符

有什么问题直接问吧,现在有时间

永恒的蓝色梦想 发表于 2020-6-5 22:40:54

最后的 if slogan == name 这个是把每一个元素看成了列表码,取第一个值比较,你是不是联想到了 char* {:10_277:}

疾风怪盗 发表于 2020-6-6 11:42:44

list3 = []
for slogan in list1 :#遍历列表取出元素
    for name in list2 :#遍历列表取出元素
       if slogan == name :#根据题目,取出的元素是字符串,name就是字符串切片,取出第一个元素,就是数字序号,再做条件判断是否相等
            list3.append(name + ':' + slogan)#slogan也是字符串切片,取出从第3个元素开始到最后的全部字符串,就相当于去掉了数字序号和标点符号

Juniorboy 发表于 2020-6-7 20:18:18

Twilight6 发表于 2020-6-5 22:36
slogan 你想想位置参数第二个到最后少了什么, 就是把前面的 编号 和 . 给去掉的作用,

不是 从列 ...

那看是不是相等的话,是不是比较字符串第一个字符就可

Juniorboy 发表于 2020-6-7 20:18:53

Twilight6 发表于 2020-6-5 22:36
slogan 你想想位置参数第二个到最后少了什么, 就是把前面的 编号 和 . 给去掉的作用,

不是 从列 ...

以。。。。

Twilight6 发表于 2020-6-7 20:19:00

Juniorboy 发表于 2020-6-7 20:18
那看是不是相等的话,是不是比较字符串第一个字符就可

对因为这题就是把相同编号的放一起了

Juniorboy 发表于 2020-6-7 20:20:13

永恒的蓝色梦想 发表于 2020-6-5 22:40
你是不是联想到了 char*

是{:10_277:}

Juniorboy 发表于 2020-6-7 20:23:16

Twilight6 发表于 2020-6-7 20:19
对因为这题就是把相同编号的放一起了

好,谢谢你哈

Twilight6 发表于 2020-6-7 20:23:49

Juniorboy 发表于 2020-6-7 20:23
好,谢谢你哈

https://xxx.ilovefishc.com/forum/202005/27/132745rjvcvw1z2148jthd.gif
页: [1]
查看完整版本: 列表推导式