18749570479 发表于 2021-7-8 15:36:59

求助代码

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 == name:
            list3.append(name + ':' +slogan )
for each in list3:
    print(each)
    有没有大佬能帮我看看,红色部分是咋回事啊,我看不太明白,就是slogan和name是啥意思为啥要让他俩相等啊,他俩咋会相等的啊,明明是两个不同的列表。
还有slogan这个又是啥意思为啥要有不能直接用[ ]么?或者直接用slogan,我看name也没加啊

灰晨 发表于 2021-7-8 16:09:23

for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append(name + ':' +slogan )
这是两个循环
外循环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的字符,也就是
slogan=1
之后,第一次进入内循环for name in list2:
同理,name = 4.阿迪达斯, name=4
明显不相等,所以,不执行if语句
第二次进入内循环for name in list2:
name =2.李宁, name=2
第三次进入内循环for name in list2:
name = 3.谷睿, name=3
第四次进入内循环for name in list2:
name = 1.耐克, name=1

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

此时,name = 1.耐克,slogan = 1.Just do it,slogan = Just do it
所以list3.append(name + ':' +slogan ),即为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 = 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的元素都打印出来

青出于蓝 发表于 2021-7-8 16:12:57

本帖最后由 青出于蓝 于 2021-7-8 16:14 编辑

sloganslogan是一个字符串,slogan就是这个字符串的第一个字符,也就是那个编号(1,2,3,4)
name同理,name也就是那个编号
当编号相同,name对应slogan,就贮存到list3中
页: [1]
查看完整版本: 求助代码