鱼C论坛

 找回密码
 立即注册
查看: 2281|回复: 2

[已解决]求助代码

[复制链接]
发表于 2021-7-8 15:36:59 | 显示全部楼层 |阅读模式

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

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

x
list3 = []
list1 = ['1.Just do it','2.一切皆有可能','3.hope is a good thing','4.Impossible is nothing']
list2 = ['4.阿迪达斯','2.李宁','3.谷睿','1.耐克']
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' +slogan[2:] )
for each in list3:
    print(each)
    有没有大佬能帮我看看,红色部分是咋回事啊,我看不太明白,就是slogan[0]和name[0]是啥意思为啥要让他俩相等啊,他俩咋会相等的啊,明明是两个不同的列表。
还有slogan[2:]这个又是啥意思为啥要有[2:]不能直接用[ ]么?或者直接用slogan,我看name也没加啊
最佳答案
2021-7-8 16:09:23
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' +slogan[2:] )
这是两个循环
外循环for slogan in list1:
每次循环,从list1中取一个元素赋值给slogan
内循环for name in list2:
每次循环,从list2中取一个元素赋值给name

执行顺序
首先,第一次进入外循环for slogan in list1:
此时
slogan=1.Just do it
这slogan的类型是str,即字符串
slogan[0],即取该字符串下标为0的字符,也就是
slogan[0]=1
之后,第一次进入内循环for name in list2:
同理,name = 4.阿迪达斯, name[0]=4
明显不相等,所以,不执行if语句
第二次进入内循环for name in list2:
name =2.李宁, name[0]=2
第三次进入内循环for name in list2:
name = 3.谷睿, name[0]=3
第四次进入内循环for name in list2:
name = 1.耐克, name[0]=1

当name[0] = 1 时,等于slogan[0]
执行if语句list3.append(name + ':' +slogan[2:] )
在list3列表追加此时name的值, ':', 和slogan[2:]
slogan[2:]的意思是slogan下标为2的字符到结束

此时,name = 1.耐克,slogan = 1.Just do it,slogan[2:] = Just do it
所以list3.append(name + ':' +slogan[2:] ),即为list3.append('1.耐克' + ':' +'Just do it' )
于是list3 = ['1.耐克:Just do it']

之后,因为list2中只有4个元素,所以,for name in list2循环4次后就结束了
然后,就进入第二次外循环for slogan in list1
此时,slogan = 2.一切皆有可能,slogan[0] = 2
然后,再次进行4次内循环for name in list2
....
...
..

循环到最后,list3 = ['1.耐克:Just do it','2.李宁:一切皆有可能'.'3.谷睿:hope is a good thing','4.阿迪达斯:Impossible is nothing']
之后
for each in list3:
    print(each)
用for 循环把list3的元素都打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-8 16:09:23 | 显示全部楼层    本楼为最佳答案   
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' +slogan[2:] )
这是两个循环
外循环for slogan in list1:
每次循环,从list1中取一个元素赋值给slogan
内循环for name in list2:
每次循环,从list2中取一个元素赋值给name

执行顺序
首先,第一次进入外循环for slogan in list1:
此时
slogan=1.Just do it
这slogan的类型是str,即字符串
slogan[0],即取该字符串下标为0的字符,也就是
slogan[0]=1
之后,第一次进入内循环for name in list2:
同理,name = 4.阿迪达斯, name[0]=4
明显不相等,所以,不执行if语句
第二次进入内循环for name in list2:
name =2.李宁, name[0]=2
第三次进入内循环for name in list2:
name = 3.谷睿, name[0]=3
第四次进入内循环for name in list2:
name = 1.耐克, name[0]=1

当name[0] = 1 时,等于slogan[0]
执行if语句list3.append(name + ':' +slogan[2:] )
在list3列表追加此时name的值, ':', 和slogan[2:]
slogan[2:]的意思是slogan下标为2的字符到结束

此时,name = 1.耐克,slogan = 1.Just do it,slogan[2:] = Just do it
所以list3.append(name + ':' +slogan[2:] ),即为list3.append('1.耐克' + ':' +'Just do it' )
于是list3 = ['1.耐克:Just do it']

之后,因为list2中只有4个元素,所以,for name in list2循环4次后就结束了
然后,就进入第二次外循环for slogan in list1
此时,slogan = 2.一切皆有可能,slogan[0] = 2
然后,再次进行4次内循环for name in list2
....
...
..

循环到最后,list3 = ['1.耐克:Just do it','2.李宁:一切皆有可能'.'3.谷睿:hope is a good thing','4.阿迪达斯:Impossible is nothing']
之后
for each in list3:
    print(each)
用for 循环把list3的元素都打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-8 16:12:57 | 显示全部楼层
本帖最后由 青出于蓝 于 2021-7-8 16:14 编辑
slogan[0]
slogan是一个字符串,slogan[0]就是这个字符串的第一个字符,也就是那个编号(1,2,3,4)
name同理,name[0]也就是那个编号
当编号相同,name对应slogan,就贮存到list3中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 04:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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