def flattenlist(L):
import types
WhiteTypes = ('StringType', 'UnicodeType', 'StringTypes', 'ListType',
'ObjectType', 'TupleType')
BlackTypes= tuple( [getattr(types, x) for x in dir(types)
if not x.startswith('_')
and x not in whites] )
tmp = []
def core(L):
if not hasattr(L,'__iter__'):
return [L]
else :
for i in L:
if isinstance(i,BlackTypes):
tmp.append(i)
continue
if type(i) == type(str()):
tmp.append(i)
else:
core(i)
return tmp
return core(L)
#Examples x=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[['x']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
>>> flattenlist(x)
['x']
>>> x=(((((1)))))
>>> flattenlist(x)
[1]
>>> x=[(),(),[]]
>>> flattenlist(x)
[]
>>> x=[(1),('1'),[1.0]]
>>> flattenlist(x)
[1, '1', 1.0]
>>> x=[[[[[[(((([1,1]))))]]]]]]
>>> flattenlist(x)
[1, 1]
>>> x=1
>>> flattenlist(x)
[1]
>>> x=flattenlist
>>> flattenlist(x)
[<function flattenlist at 0x16a8320>]
>>>
Diff to Previous Revision
--- revision 2 2010-06-12 07:11:56
+++ revision 3 2010-06-18 03:45:20
@@ -1,8 +1,8 @@
def flattenlist(L):
import types
- whites = ('StringType', 'UnicodeType', 'StringTypes', 'ListType',
+ WhiteTypes = ('StringType', 'UnicodeType', 'StringTypes', 'ListType',
'ObjectType', 'TupleType')
- Types= tuple( [getattr(types, x) for x in dir(types)
+ BlackTypes= tuple( [getattr(types, x) for x in dir(types)
if not x.startswith('_')
and x not in whites] )
@@ -12,7 +12,7 @@
return [L]
else :
for i in L:
- if isinstance(i,Types):
+ if isinstance(i,BlackTypes):
tmp.append(i)
continue
if type(i) == type(str()):
@@ -25,7 +25,7 @@
-#Examples x=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[['x']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+#Examples x=[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[['x']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
>>> flattenlist(x)
['x']
>>> x=(((((1)))))