嵌套列表推导式
name_lsts = [ [ "jee" , "peer" , "perry" ]
, [ "darl" , "cristin" , "wang" ] ]
all_names = [ name for name_lst in name_lsts for name in name_lst]
all_names
['jee', 'peer', 'perry', 'darl', 'cristin', 'wang']
all_names = [ ]
for name_lst in name_lsts:
for name in name_lst:
all_names. append( name)
all_names
['jee', 'peer', 'perry', 'darl', 'cristin', 'wang']
all_names = [ name for name_lst in name_lsts for name in name_lst if name. count( "e" ) >= 2 ]
all_names
['jee', 'peer']
all_names = [ ]
for name_lst in name_lsts:
for name in name_lst:
if name. count( "e" ) >= 2 :
all_names. append( name)
all_names
['jee', 'peer']
函数做对象
将多个函数作为对象放到一个列表中
import re
strs = [ "#hello" , "daf ?" , "qip! " ]
def remove_punctuation ( str ) :
return re. sub( '[?!# ]' , '' , str )
operators = [ str . strip, remove_punctuation, str . title]
for i in range ( len ( strs) ) :
for operator in operators:
strs[ i] = operator( strs[ i] )
print ( strs)
['Hello', 'Daf', 'Qip']
strs = [ "#hello" , "daf ?" , "qip! " ]
operators = [ str . strip, remove_punctuation, str . title]
def tackle_strs ( strs, operators) :
for i in range ( len ( strs) ) :
for operator in operators:
strs[ i] = operator( strs[ i] )
tackle_strs( strs, operators)
strs
['Hello', 'Daf', 'Qip']
将函数作为对象传入 map 中对列表元素批量操作
strs = [ "#hello" , "daf ?" , "qip! " ]
[ * map ( str . strip, strs) ]
['#hello', 'daf ?', 'qip!']