Python学习19:其他应用(列表综合、列表或元组作为函数参数、lambda形式)
2014-07-25 16:17
1041 查看
列表综合
通过列表综合,可以从一个已有的列表导出一个新的列表。#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’表达式作为函数体,而表达式的值被这个新建的函数返回。
注意,即便是
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']"
相关文章推荐
- python里函数怎么样使用元组或字典作为参数调用
- Python——可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
- python之列表作为函数的参数
- java学习日记_45:应用类型作为形式参数。
- 《转》Python学习(19)-python函数(二)-关于lambda
- Kotlin语言学习之将函数作为参数传递,使用双冒号::引用其他方法
- Dive Into Python 学习记录1-函数/模块导入/字典/列表/元组/字符串分割、连接、格式化/映射list/
- python学习总结---列表、元组、字符串、字典中一些常用函数
- python3学习笔记:函数作为返回值&匿名函数lambda
- python中用元组传递函数参数的形式
- python 元组和字典中元素作为函数调用参数传递
- python学习笔记12(函数三): 参数类型、递归、lambda函数
- Python学习--识别“字符串&字典&列表&元组“
- python学习手册笔记--第9章--元组文件及其他
- python学习笔记5-核心类型-元组和文件及其他
- python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
- Python基础教程学习比较----第二章 列表和元组
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析 .
- Python 使用列表作为函数默认值且为空