鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zltzlt

[已解决]Python:每日一题 287

[复制链接]
发表于 2019-12-11 13:53:59 From FishC Mobile | 显示全部楼层
Michaelp 发表于 2019-12-11 11:55
第三行的可以不加list转化了,我去查了下,filter返回的就是列表

你打印得出来吗?不list的话打印出来还是filter object鸭
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-11 15:04:43 | 显示全部楼层
Michaelp 发表于 2019-12-11 11:36
哇,看不懂这位大佬写的第一行,谁能给我讲讲

这是赋值的妙用,一个由变量组成的元组,可以被赋值为一个等长的元组,赋值号左边的变量会被赋值为右边元组中索引相同的对象。
  1. l,r = [],[]
复制代码

等效于
  1. l = []
  2. r = []
复制代码

并且还不能像
  1. l = r = []
复制代码
这样写,因为赋值列表,是把列表的地址给记录下来而已,改了一个,另一个也会同步进行更改,因为是同一个变量地址,除非是重新赋值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 15:10:01 | 显示全部楼层
  1. def f287(s):
  2.     s1=[]
  3.     s2=[]
  4.     for i in s:
  5.         if i%2:
  6.             s1.append(i)
  7.         else:
  8.             s2.append(i)
  9.     return s1+s2
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +1 收起 理由
zltzlt + 3 + 3 + 1 864 ms

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-11 20:51:56 | 显示全部楼层

解答错误

输入:[1,2]
输出:[2,1]
预期结果:[1,2]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 21:04:34 | 显示全部楼层
zltzlt 发表于 2019-12-11 20:51
解答错误

输入:[1,2]
  1. def solve(s):
  2.     return sorted(s, key=lambda x:not x%2)
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
zltzlt + 1 + 1 862 ms

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 21:44:39 | 显示全部楼层
  1. def fun(numList):
  2.     if numList == []:
  3.         return []
  4.     else:
  5.         return list(filter(lambda x:x%2==1,numList))+list(filter(lambda x:x%2==0,numList))

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-13 16:23:07 | 显示全部楼层
asukafai 发表于 2019-12-11 13:53
你打印得出来吗?不list的话打印出来还是filter object鸭

我是先去查了filter函数,然后我复制代码并把list删了,没有异常,输出结果一致
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-13 16:25:02 | 显示全部楼层

其实我问的是这个(nums:' 可迭代对象 ')->list
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-25 13:53:07 | 显示全部楼层
本帖最后由 kinkon 于 2019-12-25 14:08 编辑
  1. def fun287(n):
  2.     a,b = [],[]
  3.     for i in n:
  4.         if not i%2:
  5.             a.append(i)            
  6.         else:
  7.             b.append(i)            
  8.     return (a+b)
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 17:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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