Python学习19:其他应用(列表综合、列表或元组作为函数参数、lambda形式)

列表综合

通过列表综合,可以从一个已有的列表导出一个新的列表。

#FileName:other_py.py
#使用列表综合
ls = [1,2,3,4,5]
#定义一个空的列表
ls2 = []

#通过for循环填充列表ls2
for i in ls:
    if i >= 2:
        ls2.append(i *3)

print('列表ls2:',ls2)

#列表的综合应用,实现效果同上
ls3 = [i * 3 for i in ls if i >= 2]
print('列表ls3:',ls3)

ls4 = ['Hello','Python','World!']
#将列表综合用于字符串列表
ls5 = [i * 2 for i in ls3]
print('列表ls5:',ls5)

在函数中接收元组和字典

当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用***前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。

#函数接收元组或字典
#函数接收元组
print('函数接收元组----------------------------------')
#定义函数powerSum(),由于第二参数arg前有“*”作为前缀,所以这个函数将多余的参数作为一个元组接收放到arg中
def powerSum(power,*arg):
    total = 0
    for i in arg:
        #计算元组arg中的各个元素的power次方,追加到total中
        total += pow(i,power)
    return total

#调用函数powSum():将参数3传递给power,将其与的参数作为元组传递给arg
print('powerSum(3,2,4,5) = %d\n'%powerSum(3,2,4,5))

#函数接收字典
print('函数接收元组----------------------------------')
#定义函数dicFunc(),由于第二个参数arg前有“**”作为前缀,所以这个函数将多余的参数作为一个字典接收存放到arg中
def dicFunc(str2,**arg):
    print(str2)
    for key,value in arg.items():
        print(key,':',value)
#调用函数dicFunc,由于函数dicFunc原型存在两个参数,所以第一个参数str2接收第一个参数,其与的参数以字典的形式存放到arg中
try:
    dicFunc('函数接收字典,内容如下:',name='jiezhj',blog='http://csdn.com.jiezhj',date='2014年7月25日')
except TypeError:
    print('传入的参数类型可能存在错误...')
except SyntaxError:
    print('语法错误:估计是格式不正确')
finally:
    print('函数接收元组或者字典Over!')


 

lambda形式

lambda语句被用来创建新的函数对象,并且在运行时返回它们。

#lambda的使用:只能跟表达式
#定义函数worldFunc()
def worldFunc():
    return lambda x,y:x +' Python ' +  y

#将worldFunc的返回值赋值个func(有点类似函数指针)
func = worldFunc()

#调用函数func()并打印,分别将'Hello'以及‘World’传递给x,y
print('func(\'Hello\',\'World\') = ',func('Hello','World'))


 lambda语句用来创建函数对象。本质上,lambda需要参数x,y,后面单个‘x + ' Python ' + y’表达式作为函数体,而表达式的值被这个新建的函数返回。

注意,即便是print语句也不能用在lambda形式中,只能使用表达式。 

exec和eval语句

exec语句用来执行储存在字符串或文件中的Python语句。

#exec语句用来执行储存在字符串或文件中的Python语句。
#调用exec函数,再次打印
print('#调用exec函数,再次打印')
#屏蔽符挺多
exec('print(\'func(\\\'Hello\\\',\\\'World\\\') = \',func(\'Hello\',\'World\'))')
exec('print(\'Hello exec func\')')


 eval语句用来计算存储在字符串中的有效Python表达式。

assert语句

assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError

#断言assert的使用
print('断言assert的使用')

#定义一个字典
lsA = ['name','blog','date','other']
dic2 = {}.fromkeys(lsA,'20140725')
#打印字典dic2的结构
print(dic2)

try:
    while True:
        #断言字典中还存在元素
        assert len(dic2) >= 1
        #弹出元素
        dic2.pop(lsA[len(lsA)-1])
        #列表弹出最后一个元素
        lsA.pop()
        #再次打印字典dic2的结构
        print(dic2)  
except AssertionError:
    print('字典dic2中不存在元素')


repr函数

repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object

>>> i = []
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值