作者yjc1 (..........)
看板Python
标题Re: [问题] 请教 List 问题
时间Sat Jan 19 01:37:54 2008
※ 引述《plom (plom)》之铭言:
: 请教各位了,
: 假设有一个 List =[['ac','bc'],['cd','de','ef']]
: 如何简洁语法可以将它解开成:['ac','bc','cd','de','ef']?
这问题可以一般化为 flatten list in python .
把 keyword 丢上 google 可以查到不少解法,如
def flatten(x):
"""flatten(sequence) -> list
Returns a single, flat list which contains all elements retrieved
from the sequence and all recursively contained sub-sequences
(iterables).
Examples:
>>> [1, 2, [3,4], (5,6)]
[1, 2, [3, 4], (5, 6)]
>>> flatten([[[1,2,3], (42,None)], [4,5], [6], 7, MyVector(8,9,10)])
[1, 2, 3, 42, None, 4, 5, 6, 7, 8, 9, 10]"""
result = []
for el in x:
#if isinstance(el, (list, tuple)):
if hasattr(el, "__iter__") and not isinstance(el, basestring):
result.extend(flatten(el))
else:
result.append(el)
return result
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.76.240.242
1F:→ plom:谢谢你详细的解说 ^^ 01/20 21:23