珠江东之虎 发表于 2020-10-28 01:38:42

第12讲课后题目求解释


12讲最后一题的推导过程:
list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
for slogan in list1:
    for name in list2:
      if slogan == name:
            list3=name+':'+slogan
print(list3)

上面这段是我的代码,为什么我这样跑出来的结果,只能是显示一个4.阿迪达斯:Impossible is Nothing,而不是能像答案那样显示4个广告标语与公司匹配?

wp231957 发表于 2020-10-28 06:59:05

都覆盖掉了,用列表的追加保存起来

heidern0612 发表于 2020-10-28 07:27:06

逻辑问题,像2楼说的,本来你筛出来了相等的,又被你后面筛出相等的给覆盖掉了。

改成如下即可:

list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 =[]
for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append( name+':'+slogan)
print(list3)

笨鸟学飞 发表于 2020-10-28 08:54:13

list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
for slogan in list1:
    for name in list2:
      if slogan == name:
            list3=name+':'+slogan   
#list3初次调用,看右边赋值确定其类型,name是字符串,‘:’是字符串,slogan还是字符串,说明list3是字符串啊
#你要么在前面赋值list3=[],让他变列表,这行改成列表插入数据list3.append(name+':'+slogan)
#但是还有个问题,你这列表排序不一定正确,所以得改算法了
print(list3)

珠江东之虎 发表于 2020-10-28 09:59:48

heidern0612 发表于 2020-10-28 07:27
逻辑问题,像2楼说的,本来你筛出来了相等的,又被你后面筛出相等的给覆盖掉了。

改成如下即可:


哦哦,明白了,谢谢!
页: [1]
查看完整版本: 第12讲课后题目求解释