Python函数进阶

这次接着上一篇《Python函数学习解析》继续学习。
先看一下Python涵盖的函数(部分):
在这里插入图片描述标出的函数都将是本篇博客将要介绍的。

range()函数

Python3 range()函数返回的是一个可迭代对象 (类型是对象) , 而不是列表类型,所以打印的时候不会打印列表。Python3 list()函数是对象迭代器,可以把range(返回的可选代对象转为-一个列表,返回的变量类型为列表。Python2 range()函数返回的是列表。
函数语法

range(stop)
range(start, stop[, step])

参数说明:
● start: 计数从start开始。默认是从0开始。例如range (5)等价于range(0, 5);
● stop:计数到stop结束,但不包括stop. 例如: range(0, 5)是[0, 1,2, 3, 4]没有5
● step:步长,默认为1.例如:range(0, 5)等价于range(0, 5, 1)

range()函数返回的是一个可迭代对象,而不是列表类型,所以打印的时候不会打印列表

>>>range(5)
range(0, 5)
>>> for i in range(5):
print(i)
————
0
1
2
3
4
>>> list(range(5))
[0,1,2,3,4]
>>> list(range(0))
[]

map()函数

map(函数,列表或其他可迭代对象)会根据提供的函数对指定序列做映射。
第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表

参数:

  • function -----> 函数
  • iterable -----> 一个或多个序列

返回值:
Python 3.x返回迭代器。
函数语法:

map(function, iterable, ...)

如果list(map(,[]))才可以得到列表,转化成想要的数据类型才可以输出,for循环里也可以通过编写输出具有阶段功能,传入参数不等时按最短的参数来。

>>>def square(x) :
>>>		returnx ** 2
>>>map (square,  [1,2,3,4,5])

<map at 0x5815240>

>>>def square (x):  #计算平方数
>>>	  return x** 2 
>>>list (map(square, [1,2,3, 4,5])) # 计算列表各个元素的平方

[1,4, 9, 16,25]

>>>map(lambdax: x**2,[1,2,3,4,5])  #使用lambda匿名函数

<map at 0x58077b8>
>>>def add(x, y, z) :
>>>		return x+y+z

>>>list1 = [1,2,3]
>>>list2 = [1,2,3, 4]
>>>list3 = [1,2,3,4,5]
>>>res = map(add, listl, list2,list3)
>>>print (list (res))

[3, 6, 9]

filter()函数

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回True或False ,最后将返回True的元素放到新列表中。
语法:
filter(function, iterable)
参数:

  • function -----> 判断函数。
  • iterable -----> 可迭代对象。

内置函数filter()将一一个 单参数函数作用到一个序列上,返回该序列中使得该函数返回值为True的那些元素组成的filter对象,如果指定函数为None ,则返回序列中等价于True的元素。

>>> seq = [ 'foo',  'x41',  '?!',  ‘***’ ]
>>> def func(x):
   	    return x. isalnum()     #测试是否为字母或数字
>>> filter(func, seq)     #返回filter对象

<filter object at 0x000000000305D898>

>>> list(filter(func, seq))      #把filter对象转换为列 表
 ['foo', 'x41']

关于filter()方法, python3和python2有一点不同。
Python2.x中返回的是过滤后的列表,而Python3中返回到是一个filter 类。

filter类实现了_ iter__ 和_ next__ 方法, 可以看成是一个迭代器,有惰性运算的特性,相对Python2.x提升了性能,可以节约内存。

>>>a = filter(lambda x: x % 2 ==0, range(10))print(a)

输出:
<filter object at 0x000022EC66BB128>

zip()函数

zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

  • zip()返回的是一个对象,如果需要展示列表,需手动list()转化。
  • zip()函数可把两个或多个序列中的相应项合并在一起,并以元组的格式返回他们,在处理完最短序列中的所有项后就停止。
    把可迭代对象一 一匹配,长度不一样按最短的为准,同上需要转化为想要输出的。
  • 字典的键是不可变类型 dict(zip(a,b)), a必须是不可变的,可以生成{键值对}

语法:

zip([iterable, ...])

参数:
● iterabl -----> 个或多个迭代器

返回值: 返回元组列表。

>>>a = [1,2, 3]
>>>b = [4,5, 6]
>>>zip(a, b)

<zip at 0x5a1fa08>

>>>a = [1,2,3]
>>>b = [4,5, 6]
>>>list(zip(a, b))

[(1, 4), (2, 5), (3, 6)]

>>>a = [1,2,3]
>>>b = [4,5, 6]
>>>zipped = zip(a, b)
>>>list (zip (*zipped))

[(1, 2, 3), (4, 5, 6)]

enumerate()函数

用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。sequence:一个序列、迭代器、其他支持迭代对象。start:下表起始位置

>>>seasons = [' Spring', ' Summer", 'Fall', 'Winter' ]
>>>list (enumerate (seasons))

[(0, Spring ), (1, ' Summer' ), (2, Fall'), (3, ' Winter' )]

>>>list (enumerate (seasons, start=1))       #下标从1开始

[(1, ' Spring ), (2, ' Summer' ), (3, Fall' ), (4, ' Winter' )]
>>>i=0
>>>seq = [' Tom',,, 'Jerry', 'Bob' ]
>>>for element in seq:
>>>		print (i,  seq[i])
>>>		i+=1

0 Tom
1 Jerry
2 Bob
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python进阶函数是指一些高级特性和用法,它们可以进一步提高代码的复用性、可读性和效率。以下是一些常见的Python进阶函数及其用法: 1. 匿名函数(lambda函数):使用lambda关键字定义的匿名函数可以简洁地定义一些简单的函数。例如,lambda x: x**2表示一个接受参数x并返回x的平方的匿名函数。 2. map()函数:map()函数用于将一个函数应用到一个可迭代对象的每个元素上,并返回一个新的可迭代对象。例如,map(lambda x: x**2, [1, 2, 3, 4])将返回一个包含每个元素平方值的列表。 3. filter()函数:filter()函数用于根据指定条件过滤可迭代对象中的元素,并返回一个新的可迭代对象。例如,filter(lambda x: x > 0, [-1, 0, 1, 2])将返回一个包含大于0的元素的列表。 4. reduce()函数:reduce()函数用于对可迭代对象中的元素进行累积操作,并返回一个结果。需要先从`functools`模块导入。例如,reduce(lambda x, y: x+y, [1, 2, 3, 4])将返回10,表示1+2+3+4。 5. zip()函数:zip()函数用于将多个可迭代对象的对应元素打包成元组,然后返回一个新的可迭代对象。例如,zip([1, 2, 3], ['a', 'b', 'c'])将返回[(1, 'a'), (2, 'b'), (3, 'c')]。 6. enumerate()函数:enumerate()函数用于为可迭代对象中的元素添加索引,并返回一个新的可迭代对象。例如,enumerate(['a', 'b', 'c'])将返回[(0, 'a'), (1, 'b'), (2, 'c')]。 7. sorted()函数:sorted()函数用于对可迭代对象进行排序,并返回一个新的列表。例如,sorted([3, 1, 2])将返回[1, 2, 3]。 8. any()和all()函数:any()函数用于判断可迭代对象中是否存在至少一个为真的元素;all()函数用于判断可迭代对象中的所有元素是否都为真。例如,any([True, False, True])将返回True,而all([True, False, True])将返回False。 这些是Python进阶函数的一些例子,它们可以帮助你更高效地编写代码,增加代码的灵活性和可读性。当然,还有很多其他的进阶函数和技巧可以在Python文档和其他教程中学习到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值