0%

22.列表扁平化

22. 列表扁平化

给定一个列表,该列表中的每个元素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution(object):

# @param nestedList a list, each element in the list
# can be a list or integer, for example [1,2,[1,2]]
# @return {int[]} a list of integer
def flatten(self, nestedList):
a = []
for i in range(len(nestedList)):#用于判断给定列表中的元素是否含有列表(注:这一目的主要是为了结束递归的死循环)
if type(nestedList[i]) == list:#如果有就将列表中的列表分别取出来放到新的列表中
for j in range(len(nestedList)):
if type(nestedList[j]) != list:
a.append(nestedList[j])
else:
for k in range(len(nestedList[j])):
a.append((nestedList[j])[k])
return Solution.flatten(self,a)#使用递归完成多次“套娃”的情况

return nestedList#如果没有就直接返回这个列表



nums = [4,[3,[2,[1]]]]
so = Solution()
print(so.flatten(nums))

"""
输出结果:
[4, 3, 2, 1]
"""