鱼C论坛

 找回密码
 立即注册
查看: 1897|回复: 6

[已解决]第12讲第6题求助

[复制链接]
发表于 2018-6-23 23:14:23 | 显示全部楼层 |阅读模式

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

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

x
题目见附件,以下是我的代码:
list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2= ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 = [y + ':' + x[2:] for x in list1 for y in list2.sort() if list1.index(y) == list2.index(x)]

运行提示错误如下:
list3 = [y + ':' + x[2:] for x in list1 for y in slogan if list1.index(y) == slogan.index(x)]
TypeError: 'NoneType' object is not iterable

请问是什么原因?

事先感谢!
最佳答案
2018-6-24 00:47:43
错了2点
改了2处
  1. list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2= ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
  3. list2.sort() #第一处修改,把list2.sort()提出来,list.sort()处理后返回的是None类型,这个是针对list的一个动作,结果返回的是None
  4. list3 = [y + ':' + x[2:] for x in list1 for y in list2 if list1.index(x) == list2.index(y)] #第二处,if后的x,y互换位置
  5. for each in list3:
  6.     print(each)
复制代码
第六题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-23 23:34:15 | 显示全部楼层
先说说程序存在的问题:
1、list的sort方法并无返回,所以会爆 NoneType错误
2、if判断处有错误

修改如下:
  1. list1 = ['1.Just do it', '2.一切皆有可能', '3.让编程改变世界', '4.Impossible is Nothing']
  2. list2 = ['4.阿迪达斯', '2.李宁', '3.鱼C工作室', '1.耐克']
  3. list2.sort()
  4. list3 = [y + ':' + x[2:] for x in list1 for y in list2 if x[0] == y[0]]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-24 00:47:43 | 显示全部楼层    本楼为最佳答案   
错了2点
改了2处
  1. list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2= ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
  3. list2.sort() #第一处修改,把list2.sort()提出来,list.sort()处理后返回的是None类型,这个是针对list的一个动作,结果返回的是None
  4. list3 = [y + ':' + x[2:] for x in list1 for y in list2 if list1.index(x) == list2.index(y)] #第二处,if后的x,y互换位置
  5. for each in list3:
  6.     print(each)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-24 00:50:13 | 显示全部楼层
  1. list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2= ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
  3. list2.sort() #第一处修改,把list2.sort()提出来,list.sort()处理后返回的是None类型,这个是针对list的一个动作,结果返回的是None
  4. list3 = [y + ':' + x[2:] for x in list1 for y in list2 if list1.index(x) == list2.index(y)] #第二处,if后的x,y互换位置
  5. for each in list3:
  6.     print(each)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-24 22:23:38 | 显示全部楼层
凌九霄 发表于 2018-6-23 23:34
先说说程序存在的问题:
1、list的sort方法并无返回,所以会爆 NoneType错误
2、if判断处有错误

你的答案我觉得也没问题,可为什么我复制到编译器里边,运行之后什么都不显示呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-25 05:50:11 | 显示全部楼层
你可以添加print(list3)显示结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-25 21:30:05 | 显示全部楼层
凌九霄 发表于 2018-6-25 05:50
你可以添加print(list3)显示结果

是啊……(糗,多谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 00:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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