鱼C论坛

 找回密码
 立即注册
查看: 3293|回复: 28

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

[复制链接]
发表于 2019-12-10 21:10:06 | 显示全部楼层 |阅读模式

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

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

x
今天的题目:


分割一个整数数组,使得奇数在前偶数在后。返回分割后的数组。

说明:答案不唯一,给出一个合法的答案即可(不需要排序)。

示例 1:

输入:[1,2,3,4]
输出:[1,3,2,4]
示例 2:

输入:[1,4,2,3,5,6]
输出:[1,3,5,4,2,6]


欢迎大家一起答题!
最佳答案
2019-12-10 22:03:56
  1. def solve(s):
  2.     result = []
  3.     for i in s:
  4.         if i % 2 == 1:
  5.             result.insert(0,i)
  6.         else:
  7.             result.append(i)
  8.     return result

  9. if __name__ == '__main__':
  10.     print('自测1:输入:[1,2,3,4],输出:',end = '')
  11.     print(solve([1,2,3,4]))

  12.     print('自测2:输入:[1,4,2,3,5,6],输出:', end='')
  13.     print(solve([1,4,2,3,5,6]))

  14.     print('自测3:输入:[],输出:', end='')
  15.     print(solve([]))
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-10 21:12:18 | 显示全部楼层
本帖最后由 阴阳神万物主 于 2019-12-10 21:24 编辑

抢沙发
代码:
  1. def solve(nums:'可迭代对象')->list:
  2.     l,r= [],[]
  3.     for each in nums:
  4.         if not isinstance(each,int):
  5.             each = int(each)
  6.         if each % 2:
  7.             l.append(each)
  8.         else:
  9.             r.append(each)
  10.     return l+r
  11. if __name__ == '__main__':
  12.     print('示例1 输出:',solve([1,2,3,4]))
  13.     print('示例2 输出:',solve([1,4,2,3,5,6]))
复制代码



评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 21:25:05 | 显示全部楼层
本帖最后由 Unicorn# 于 2019-12-10 21:29 编辑
  1. def solve(s):
  2.     return sorted(s, key=lambda x:x%2+1)
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-10 22:03:56 | 显示全部楼层    本楼为最佳答案   
  1. def solve(s):
  2.     result = []
  3.     for i in s:
  4.         if i % 2 == 1:
  5.             result.insert(0,i)
  6.         else:
  7.             result.append(i)
  8.     return result

  9. if __name__ == '__main__':
  10.     print('自测1:输入:[1,2,3,4],输出:',end = '')
  11.     print(solve([1,2,3,4]))

  12.     print('自测2:输入:[1,4,2,3,5,6],输出:', end='')
  13.     print(solve([1,4,2,3,5,6]))

  14.     print('自测3:输入:[],输出:', end='')
  15.     print(solve([]))
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 22:04:59 | 显示全部楼层
  1. def func(nums):
  2.     course = 0
  3.     result = []
  4.     while course < len(nums):
  5.         if nums[course]%2 == 1:
  6.             result.append(nums.pop(course))
  7.         else:
  8.             course += 1
  9.     result.extend(nums)
  10.     return result
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 22:06:28 | 显示全部楼层
  1. def fun(list1):
  2.     temp = list(filter(lambda x : x%2, list1))
  3.     temp.extend(list(filter (lambda x: (x+1)%2, list1)))
  4.     return temp
  5.    
  6. print('测试[0,2,8,7,5,3,6]:', fun([0,2,8,7,5,3,6]))
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 22:11:01 | 显示全部楼层
  1. def fun(lst):
  2.      lst.sort(key = lambda x: x % 2 == 0)
  3.      return lst
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-10 22:26:47 | 显示全部楼层
本帖最后由 hrp 于 2019-12-10 23:15 编辑
  1. def func287(flist):
  2.     return list(filter(lambda x:x%2 != 0, flist)) + list(filter(lambda x:x%2 == 0, flist))
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 23:06:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 23:16:14 | 显示全部楼层

没反呀
>>> fun([1,4,2,3,5,6])
[1, 3, 5, 4, 2, 6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 23:17:21 | 显示全部楼层
冬雪雪冬 发表于 2019-12-10 23:16
没反呀
>>> fun([1,4,2,3,5,6])
[1, 3, 5, 4, 2, 6]

啊啊啊 看错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 23:54:54 | 显示全部楼层
  1. '''
  2. 分割一个整数数组,使得奇数在前偶数在后。返回分割后的数组。
  3. 说明:答案不唯一,给出一个合法的答案即可(不需要排序)

  4. 输入:[1,2,3,4]
  5. 输出:[1,3,2,4]

  6. 输入:[1,4,2,3,5,6]
  7. 输出:[1,3,5,4,2,6]
  8. '''

  9. def fun():
  10.         l = [1,4,2,3,5,6]
  11.         l1 = []
  12.         l2 = []

  13.         for i in l:
  14.                 l1.append(i) if i % 2 != 0 else l2.append(i)

  15.         return l1 + l2

  16. f = fun()
  17. print(f)
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 00:13:40 | 显示全部楼层
  1. def func287(l: list):
  2.     return sorted(l, key=lambda x: x % 2 == 0)
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 07:36:15 | 显示全部楼层
  1. def f287(lst):
  2.     return [x for x in lst if x%2 == 1] + [x for x in lst if x%2 == 0]
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 08:32:42 | 显示全部楼层
def fun(list1):
    result1, result2 = [], []

    for each in list1:
        if each % 2 != 0:
            result1.append(each)
        else:
            result2.append(each)

    result1.extend(result2)
    print(result1)


fun([1, 4, 2, 3, 5, 6])

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 09:17:06 | 显示全部楼层

确定你的顺序没问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 09:57:49 | 显示全部楼层
  1. def listSplit(list1) :
  2.       return [i for i in list1 if i % 2 == 1] + [i for i in list1 if i % 2 == 0]
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 11:09:26 | 显示全部楼层
  1. def fun287(x):
  2.     return [i for i in x if i%2] + [i for i in x if not i%2]
复制代码

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 11:36:20 | 显示全部楼层
本帖最后由 Michaelp 于 2019-12-11 11:42 编辑


哇,看不懂这位大佬写的第一行,谁能给我讲讲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 11:55:38 | 显示全部楼层


第三行的可以不加list转化了,我去查了下,filter返回的就是列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 15:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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