鱼C论坛

 找回密码
 立即注册
查看: 3767|回复: 10

[已解决]谁来帮忙解释下list3啊。看不懂了

[复制链接]
发表于 2018-4-25 13:00:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

list1 = ['1.A','2.B','3.C','4.D','5.E']
list2 = ['5.a','4.b','3.c','2.d','1.e']
最佳答案
2018-4-25 13:43:34
chmod 发表于 2018-4-25 13:31
list1[0]是 1.A
list2[4]是 1.e
永远不会相等啊?

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

遇事不决print一下
其实可以把两个list的参数弄少点 再看会清楚点
第二层循环的时候 第一层循环的值是不动的
第二层循环找到与第一层循环值一样的时候,就append了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-25 13:18:56 | 显示全部楼层
list3 = []
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':'+ slogan[2:])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-25 13:31:06 | 显示全部楼层
lotus8171213 发表于 2018-4-25 13:18
list3 = []
for slogan in list1:
    for name in list2:

list1[0]是 1.A
list2[4]是 1.e
永远不会相等啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-25 13:34:04 | 显示全部楼层
有切片[:2]表示取前面两个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-25 13:37:15 | 显示全部楼层
BngThea 发表于 2018-4-25 13:34
有切片[:2]表示取前面两个字符

就是  slogan[0] == name[0]  这不懂
帮解释下吧~
谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-25 13:40:09 | 显示全部楼层
chmod 发表于 2018-4-25 13:37
就是  slogan[0] == name[0]  这不懂
帮解释下吧~
谢谢

第一个字符相同
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-25 13:43:34 | 显示全部楼层    本楼为最佳答案   
chmod 发表于 2018-4-25 13:31
list1[0]是 1.A
list2[4]是 1.e
永远不会相等啊?

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

遇事不决print一下
其实可以把两个list的参数弄少点 再看会清楚点
第二层循环的时候 第一层循环的值是不动的
第二层循环找到与第一层循环值一样的时候,就append了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2018-4-25 13:47:26 | 显示全部楼层
BngThea 发表于 2018-4-25 13:40
第一个字符相同

但是  slogan  会返回1.A啊  C:\Users\SQ\Desktop\1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-25 13:49:23 | 显示全部楼层
chmod 发表于 2018-4-25 13:47
但是  slogan  会返回1.A啊

slogan是list1中的一个元素,又不是list1,怎么就会返回1.A ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-25 13:57:24 | 显示全部楼层
不懂了 print一下!受教了 .
谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-25 13:59:00 | 显示全部楼层
楼上的意思就是1==1而不是1.A==1.e,就只取前面的字符1后面 .a就去掉了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-1 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表