利用map函数,将字符串列表的前后空格包括换行去掉。
arr= [ ' Web 和 Internet开发' , ' 科学计算和统计\n ' , '教育 ' , '\t桌面界面开发' , '软件开发' , '后端开发' ]
arr1= [ ]
for x in arr:
x1= x. replace( '\n' , '' )
if x1!= '' :
arr1. append( x1)
data= map ( lambda s: ( s. strip( " " ) ) , arr1)
print ( list ( data) )
利用reduce函数对1-10的奇数求和
from time import sleep
from functools import reduce
arr= [ ]
for z in range ( 1 , 10 ) :
if z % 2 != 0 :
arr. append( z)
def sum ( x, y) :
return x+ y
print ( arr)
print ( "sum=" )
print ( reduce ( sum , arr) )
回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出500以内回数
def show ( n) :
num= str ( n)
return num== num[ : : - 1 ]
print ( list ( filter ( show, range ( 1 , 500 ) ) ) )
用一组tuple表示学生名字和成绩:arr = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)], 用sort函数用名字排序列表(提示:key用lambda表达式)
arr = [ ( 'Bob' , 75 ) , ( 'Adam' , 92 ) , ( 'Bart' , 66 ) , ( 'Lisa' , 88 ) ]
def byname ( arr) :
return arr[ 0 ]
def byscore ( arr) :
return arr[ 1 ]
print ( sorted ( arr, key= lambda x: arr[ 0 ] ) )
print ( sorted ( arr, key= byname) )
print ( sorted ( arr, key= byscore) )
闭包
def count ( ) :
funcs = [ ]
for i in range ( 1 , 4 ) :
def f ( param= i) :
return lambda : param
funcs. append( f)
return funcs
f1 = count( ) [ 0 ]
f2 = count( ) [ 1 ]
f3 = count( ) [ 2 ]
print ( f1( ) ( ) , f2( ) ( ) , f3( ) ( ) )
使用yield完成文件的逐行读取。
def readfile ( filenaem) :
with open ( 'one.txt' ) as reader:
line= reader. readline( )
while line:
yield line
line= reader. readline( )
read= readfile( 'one.txt' )
print ( read)
print ( next ( read) )
print ( list ( read) )
写一个装饰器,在函数执行前后分别打印出函数的开始、函数的结束和总耗时。(可用sleep(x) 来模拟执行时间)
def war1 ( func) :
def inner ( ) :
print ( "war1开始" )
sleep( 2 )
func( )
print ( "war1结束" )
sleep( 1 )
return inner
def war2 ( func) :
def inner ( ) :
print ( "war2开始" )
sleep( 4 )
func( )
print ( "war2结束" )
sleep( 2 )
return inner
@war1
@war2
def f ( ) :
print ( "****self****" )
f( )
创建一个时间类Date,里面有三个参数(year, month, day)利用装饰器方法 @staticmethod 建立一个静态函数today(),返回一个包含今天时间的Date对象
class Date ( object ) :
day= 0
month= 0
year= 0
def __init__ ( self, year= 0 , month= 0 , day= 0 ) :
self. day= day
self. month= month
self. year= year
@staticmethod
def out_date ( self) :
print ( '静态方法out_date展示的时间为年-月-日为:' )
print ( self. year, self. month, self. day)
@staticmethod
def show ( self) :
print ( 'show方法展示的时间为' )
print ( self. year, self. month, self. day)
return object
t= Date( 2016 , 8 , 1 )
Date. show( t)
Date. out_date( t)