【Python CheckiO 题解】Flatten a List
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。
CheckiO 官网:https://checkio.org/
我的 CheckiO 主页:https://py.checkio.org/user/TRHX/
CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html
CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise
题目描述
【Flatten a List】:有一个包含整数的列表,其中可能包含更多的列表和整数,也就是嵌套列表,您需要将嵌套列表进行降维处理,将所有整数值放在一个一维列表中,列表中的元素顺序应与原始列表中的顺序相同,另外还需要保持程序的小巧和精简,因此,您的代码应少于140个字符(包括空格)。
【链接】:https://py.checkio.org/mission/flatten-list/
【输入】:带整数的嵌套列表
【输出】:带整数的一维列表
【前提】:0 ≤ |array| ≤ 100;∀ x ∈ array : -232 < x < 232 or x is a list;depth < 10
【范例】:
flat_list([1, 2, 3]) == [1, 2, 3]
flat_list([1, [2, 2, 2], 4]) == [1, 2, 2, 2, 4]
flat_list([[[2]], [4, [5, 6, [6], 6, 6, 6], 7]]) == [2, 4, 5, 6, 6, 6, 6, 6, 7]
flat_list([-1, [1, [-2], 1], -1]) == [-1, 1, -2, 1, -1]
解题思路
简单粗暴,可以直接将这个嵌套列表转换成字符串,然后提取字符串中所有的数字,去掉中括号,再将所有的数字转换成一个列表,注意转换成列表时,要将每个数字由 str
类型转换成 int
类型,不然生成的列表将是 ['1', '2', '3', '4']
的形式,而不是 [1, 2, 3, 4]
的形式
代码实现
import redef flat_list(array):array = re.findall(r'-?\d+', str(array))list = []for i in array:i = int(i)list.append(i)return list'''
解法二:此方法有缺陷,如果给定的列表为空就会报错,只适合非空列表def flat_list(array):array = str(array)array = array.replace('[','').replace(']','')return list(eval(array))
'''if __name__ == '__main__':assert flat_list([1, 2, 3]) == [1, 2, 3], "First"assert flat_list([1, [2, 2, 2], 4]) == [1, 2, 2, 2, 4], "Second"assert flat_list([[[2]], [4, [5, 6, [6], 6, 6, 6], 7]]) == [2, 4, 5, 6, 6, 6, 6, 6, 7], "Third"assert flat_list([-1, [1, [-2], 1], -1]) == [-1, 1, -2, 1, -1], "Four"print('Done! Check it')
大神解答
大神解答 NO.1
flat_list=f=lambda d:[d]if int==type(d)else sum(map(f,d),[])
大神解答 NO.2
def flat_list(l):r = []def f(l):for i in l:r.append(i) if type(i) is int else f(i)f(l)return r
大神解答 NO.3
def flat_list(array):#Memento 140!return eval('[' + str(array).replace('[', '').replace(']', '') + ']')
【Python CheckiO 题解】Flatten a List相关推荐
- Python CheckiO 题解系列 丨 博客目录索引
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本题解系列主要记录自己在用 Python 闯关时的做 ...
- 【Python CheckiO 题解】Army Battles
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Date and Time Converter
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Largest Rectangle in a Histogram
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Roman Numerals
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Probably Dice
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Multicolored Lamp
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Time Converter (12h to 24h)
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
- 【Python CheckiO 题解】Speech Module
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
最新文章
- Java虚拟机垃圾收集算法
- java php mysql_系统学习javaweb13----MYSQL学习(使用PHP、SQL)1
- asp.net面试的代码题目
- pandas 替换 某列大于_pandas数据分析总结大全(入门加进阶)
- git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
- [CVPR2016]Learning Deep Feature Representations with Domain Guided Dropout for Person Re-id
- 创新学习对象1-陕西省网络与系统安全重点实验室研究员的李光夏老师
- android中互斥的控件,Android控件之Radiobutton与RadioGroup
- C++远航之封装篇——构造函数
- MBR与GPT的分区结构
- Windows将WSL 1升级为WSL2
- 阿里健康上线新冠核酸检测服务:本周覆盖北京武汉等38城
- python numpy安装步骤-python的numpy模块安装不成功简单解决方法总结
- 华为HCIP认证考试简介
- 桥本分数c语言,桥本分数式问题的C++算法
- 中文信息杂志中文信息杂志社中文信息编辑部2022年第6期目录
- 【翻译】各种Payload免杀工具集
- linux下Umail服务的停止
- Google谷歌的未来 野心:2017 Google I/O 大会 全程回顾
- |函数相乘分离 函数增长速度|day6
热门文章
- POJ 2429 GCD LCM Inverse ★(pollard-ρ DFS枚举)
- Linq 学习笔记(二)
- [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]
- [剑指offer]面试题第[2]题[JAVA][替换空格][函数][字符串]
- zblog php 外部调用,ZBlogPHP调用指定ID文章的代码GetPost()函数
- jquery交换数组元素位置_跟我一起学jQuery——第一集
- 数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题
- 支付宝支付php代码示例,Laravel使用支付宝进行支付的示例代码
- datetimepicker不可以选择当天之前_专访吴京:网上《战狼3》的消息我都不知道,大家可以选择不信...
- Windows CE下驱动程序开发基础