【Python CheckiO 题解】Flatten a List
CheckiO 是面向初學者和高級程序員的編碼游戲,使用 Python 和 JavaScript 解決棘手的挑戰(zhàn)和有趣的任務,從而提高你的編碼技能,本博客主要記錄自己用 Python 在闖關時的做題思路和實現(xiàn)代碼,同時也學習學習其他大神寫的代碼。
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】:有一個包含整數(shù)的列表,其中可能包含更多的列表和整數(shù),也就是嵌套列表,您需要將嵌套列表進行降維處理,將所有整數(shù)值放在一個一維列表中,列表中的元素順序應與原始列表中的順序相同,另外還需要保持程序的小巧和精簡,因此,您的代碼應少于140個字符(包括空格)。
【鏈接】:https://py.checkio.org/mission/flatten-list/
【輸入】:帶整數(shù)的嵌套列表
【輸出】:帶整數(shù)的一維列表
【前提】: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]解題思路
簡單粗暴,可以直接將這個嵌套列表轉換成字符串,然后提取字符串中所有的數(shù)字,去掉中括號,再將所有的數(shù)字轉換成一個列表,注意轉換成列表時,要將每個數(shù)字由 str 類型轉換成 int 類型,不然生成的列表將是 ['1', '2', '3', '4'] 的形式,而不是 [1, 2, 3, 4] 的形式
代碼實現(xiàn)
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招商银行现金分期占用额度吗
- 下一篇: 最近三年,美国GDP涨8.2%,股市却涨