鱼C论坛

 找回密码
 立即注册
查看: 1066|回复: 7

[已解决]第012讲第6题的答案没太看懂

[复制链接]
发表于 2019-11-16 12:58:04 | 显示全部楼层 |阅读模式

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

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

x
请使用列表推导式补充被小甲鱼不小心涂掉的部分
044035qddrqkmrqod4cqmr.png
这道题是不是可以通过把list2的元素先进行排序,然后把list1的每个元素中的数字编码去掉,再把两张list表中的元素依次合并这个思路解决?不太懂的是如何把list1的每个元素中的数字编码去掉,有什么简单的方法么?清大神指导~~~非常感谢!
最佳答案
2019-11-16 17:55:40
list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克 ']
list2.sort()
for i in range(4):
        print(list2[i]+':'+list1[i][2:])

根据你的要求我重新弄了下,,这个代码测试过的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-16 13:35:12 From FishC Mobile | 显示全部楼层
本帖最后由 jackz007 于 2019-11-16 13:39 编辑

        用字符串切片啊,s[2 :] 代表字符串 s 除开头 2 个字符外的剩余部分。
  1. list1 = ['1.Just do It' , '2.一切皆有可能' , '3.让编程改变世界' , '4.Impossible is Nothing']
  2. for s in list1:
  3.     print(s[2 :])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-16 17:27:47 | 显示全部楼层
jackz007 发表于 2019-11-16 13:35
用字符串切片啊,s[2 :] 代表字符串 s 除开头 2 个字符外的剩余部分。

list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克 ']
list3=[]
list2.sort()
for s in list1:
    list3.append(s[2:])
for i in range(len(list1)):
    print(list2+':'+list3)
还想追问一下,能不能帮忙看看这个语句能不能再简化一些啊,两个循环体可以合二为一嘛?请老师再指点一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:37:25 | 显示全部楼层
zzong2019 发表于 2019-11-16 17:27
list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2=['4.阿 ...

    你那样写循环不对,两个循环之间的关系必须是嵌套!

    再说,别人要求的是只用一条语句来完成,显然,必须用列表推导式:
  1. list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
  2. list2=['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克 ']
  3. list3=[s + ':' + i[2 : ] for s in list1 for i in list2 if s[0] == i[0]]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:43:41 | 显示全部楼层
for i in range(4):
        print(list2[i]+':'+list3[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:55:40 | 显示全部楼层    本楼为最佳答案   
list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克 ']
list2.sort()
for i in range(4):
        print(list2[i]+':'+list1[i][2:])

根据你的要求我重新弄了下,,这个代码测试过的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 19:32:52 | 显示全部楼层
不要用C语言的思路想,这个跟C语言有区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 20:22:04 | 显示全部楼层
如果 list1 不是按 1234 的顺序排,答案就会错了。所以最保险的办法是将 list1 也排序。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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