【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(']', '') + ']')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SharePoint学习札记[4] — 创建SharePoint站点

为减少创建SharePoint站点过程中的麻烦&#xff0c;先打开IIS管理器&#xff0c;将“默认站点”停止或删除。后面的创建过程中&#xff0c;创建向导会自动创建端口为80的网站。 现在将&#xff1a; 1. 创建两个Web应用程序。 2. 创建共享服务。 3. 创建…

【Python CheckiO 题解】Long Repeat

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

SharePoint学习札记[5] — 设置匿名访问

设置网站的匿名访问一般有三种情况&#xff1a; 1. 创建Web应用程序时进行匿名访问设置。 2. 对已建立的网站进行匿名访问设置。 3. 对同一个网站分别设置验证访问和匿名访问。创建Web应用程序时进行匿名访问设置 新建Web应用程序时在“安全性配置”的“允许匿名访问”选…

【Python CheckiO 题解】Sun Angle

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

解决text-overflow: ellipsis;不生效的问题

按照text-overflow: ellipsis;使用规则&#xff0c;在标签样式中添加该属性未生效&#xff0c;例如&#xff1a; 写道 .text { text-overflow: ellipsis; } <div class"text">长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字…

【Python CheckiO 题解】Bird Language

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

Python CheckiO 题解系列 丨 博客目录索引

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本题解系列主要记录自己在用 Python 闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 …

文带你深入了解 Redis 内存模型

前言 Redis是目前最火爆的内存数据库之一&#xff0c;通过在内存中读写数据&#xff0c;大大提高了读写速度&#xff0c;可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时&#xff0c;会接触Redis的5种对象类型&#xff08;字符串、哈希、列表、集合、有序集合…

【Python CheckiO 题解】Pawn Brotherhood

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Xs and Os Referee

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

c#多线程总结(纯干货)

线程基础 创建线程 static void Main(string[] args) {Thread t new Thread(PrintNumbers);t.Start();//线程开始执行PrintNumbers();Console.ReadKey(); }static void PrintNumbers() {Console.WriteLine("Starting...");for (int i 1; i < 10; i){Console.Wr…

Hexo 博客优化之实用功能添加系列(持续更新)

2022-01-25 更新&#xff1a;博客新地址&#xff1a;https://www.itbob.cn/&#xff0c;文章距上次编辑时间较远&#xff0c;部分内容可能已经过时&#xff01; 本文将讲述一些 Hexo 博客实用功能的添加&#xff0c;本文以作者 luuman 的 spfk 主题和作者 xaoxuu 的 Material X…

SharePoint关于publish page, WiKi page, Web part page区别

并非所有页面类型都相似 让我们来重新理解一下关于这三种页面的问题&#xff0c;自己找了很多文章并没有找到很好的介绍。 尽可能简单&#xff0c;SharePoint页面是您的用户内容显示的地方。您可以将其比喻成SharePoint站点的“脸和身体”。因此&#xff0c;当你访问SharePoi…

【Python CheckiO 题解】The Warriors

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Multiply (Intro)

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

SQL Server定时执行SQL语句

企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)&…

关于DateTime的一点记录 ToString(yyyy-MM-dd HH:mm:ss)

DateTime dt DateTime.Now; string z dt.ToString("yyyy-MM-dd HH:mm:ss");//你知道这个是“年月日时分秒”的格式吧? string a dt.ToString("yyyy-MM-dd HH:mm:ss ms");//这个你认为一定是 毫秒的格式? string b dt.ToString("yyyy-MM-dd HH:…

【Python CheckiO 题解】Say Hi

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

C#语言之“string格式的日期时间字符串转为DateTime类型”的方法

方法一&#xff1a;Convert.ToDateTime(string) string格式有要求&#xff0c;必须是yyyy-MM-dd hh:mm:ss 方法二&#xff1a;Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat new System.GlobalizationDateTimeFormatInfo(); dtF…

【Python CheckiO 题解】Easy Unpack

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…