循序渐进Python3(三) -- 3 -- 内置函数

上一篇我们又介绍了26个Python内置函数。现回忆一下吧:

1.all

2.any

3.ascii

4.bin

5.bool

6.bytes

7.bytearray

8.callable

9.chr

10.compile

11.complex

12.dir

13.divmod

14.enumerate

15.eval

16.exec

17.format

18.frozenset

19.globals

20.locals

21.hash

22.hex

23.id

24.iter

25.oct

26.zip

有没有感觉很陌生的?

下面再来看看其他的函数:

1.filter

filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:

def is_odd(x):
    return x % 2 == 1

然后,利用filter()过滤掉偶数:

filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

结果:[1, 7, 9, 17]

利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:

def is_not_empty(s):
    return s and len(s.strip()) > 0
filter(is_not_empty, [‘test‘, None, ‘‘, ‘str‘, ‘  ‘, ‘END‘])

结果:[‘test‘, ‘str‘, ‘END‘]

注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

当rm为空时,默认删除空白符(包括‘\n‘, ‘\r‘, ‘\t‘, ‘ ‘),如下:

a = ‘     123‘
a.strip()

结果: ‘123‘

a=‘\t\t123\r\n‘
a.strip()

结果:‘123‘

2.map()函数

map()函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:

因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

def f(x):
    return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

输出结果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

注意:map()函数不改变原有的 list,而是返回一个新的 list。

利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

可以在后面放多个列表

>>> def sqr(x):

...    return x*x

...

>>> print map(sqr,a)

[1, 4, 9, 16, 25]

>>> def uin(y):

...    return y+y

...

>>> print map(uin,(a,b))

[[1, 2, 3, 4, 5, 1, 2, 3, 4, 5], [5, 6, 7, 8, 5, 6, 7, 8]]

3、set

set是一个无序而且不重复的集合,有些类似于数学中的集合,也可以求交集,求并集等,下面从代码里来看一下set的用法,如果对这些用法不太熟悉的话,可以照着下面的代码敲一遍。


1

2

3

>>> s1={1,2,3,1}

>>> print(s1)

{123}

由此可见set不包含重复数据。


1

2

3

4

5

6

>>> s2=set([2,5,6])

>>> print(s2)

{256}

>>> s2=set((2,5,6))

>>> print(s2)

{256}

由此可见set能够将可迭代的数据类型转为集合。


1

2

3

>>> s1.add(5)

>>> print(s1)

{1235}

添加一个元素。


1

2

3

>>> s3=s1.difference(s2)

>>> print(s3)

{13}

返回s1中存在而不存在于s2的集合。


1

2

3

>>> s1.difference_update(s2)

>>> print(s1)

{13}

将s1中存在而s2不存在的数据,存放到s1中,s1数据被改变。


1

2

3

>>> s1.discard(1)

>>> print(s1)

{3}

删除集合s1中的元素 1,不存在的话不报错 。


1

2

3

4

5

6

7

>>> s1.remove(3)

>>> print(s1)

set()

>>> s1.remove(3)

Traceback (most recent call last):

  File "<stdin>", line 1in <module>

KeyError: 3

删除集合s1中的元素 3,不存在的话报错。


1

2

3

4

5

6

>>> s1.update([11,2,3])

>>> print(s1)

{2311}

>>> s1.update([11,2,4])

>>> print(s1)

{23411}

更新s1中的元素,其实是添加 。


1

2

3

>>> k=s1.pop()

>>> print(s1)

{3411}<br>>>> print (k)<br>2

删除一个元素,并将删除的元素返回给一个变量,无序的,所以并不知道删除谁。


1

2

3

4

5

>>> s1={1,2,3,4}

>>> s2={3,4,5,6}

>>> r1=s1.intersection(s2)

>>> print(r1)

{34}

取交集,并将结果返回给一个新的集合。


1

2

3

4

5

>>> print(s1)

{1234}

>>> s1.intersection_update(s2)

>>> print(s1)

{34}

取交集,并将s1更新为取交集后的结果。


1

2

3

>>> k1=s1.issubset(s2)

>>> print(k1)

True

s1是否是s2的的子集是的话返回True,否则False 这里k1=True  。


1

2

3

>>> k2=s1.issuperset(s2)

>>> print(k2)

False

s1是否是s2的父集 k2=False    。


1

2

3

>>> k3=s2.isdisjoint(s1)

>>> print(k3)

False

s1,s2,是否有交集,有的话返回False,没有的话返回True  。


1

2

3

4

5

6

7

>>> print(s1)

{1234}

>>> print(s2)

{3456}<br>

>>> r3=s1.union(s2)

>>> print(r3)

{123456}

取并集将结果返回给r3 。


1

2

3

>>> r2=s1.symmetric_difference(s2)

>>> print(r2)

{1256}

r2=s1并s2-s1交s2   ,即把两个集合共有的元素去掉。


1

2

3

>>> s1.symmetric_difference_update(s2)

>>> print(s1)

{1256}

将s1更新为 s1并s2 - s1交s2 。

4、open

用于打开文件。

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,无意义
  • a+,同a

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

eg.

f = open(‘ha.ini.bak‘, ‘w‘)  # 以只写模式打开文件f.close() # 关闭文件
 with open(‘ha.ini‘) as fy, open(‘ha.ini.bak‘, ‘w‘) as fb:   # with 模式打开文件,可以打开多个,也不用关心关闭的问题。    for i in fy:    pass
时间: 2024-11-05 21:39:15

循序渐进Python3(三) -- 3 -- 内置函数的相关文章

Python3字符串各种内置函数详解

● Python3访问字符串 Python不支持单字符类型,单字符在Python中也是作为一个字符串来使用: 字符串切片截取: 空值 空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值. 最后,理解变量在计算机内存中的表示也非常重要.当我们写: a = 'ABC' 时,Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC'. 也可以把一个变量a赋值给另一个变量

python关于list的三个内置函数filter(), map(), reduce()

''' Python --version :Python 2.7.11 Quote : https://docs.python.org/2/tutorial/datastructures.html#more-on-lists Add by camel97 2017-04 ''' 1.filter() #filter(function, sequence) returns a sequence consisting of those items from the sequence for whic

python3常用的内置函数

数学相关 abs(a) : 求取绝对值.abs(-1) max(list) : 求取list最大值.max([1,2,3]) min(list) : 求取list最小值.min([1,2,3]) sum(list) : 求取list元素的和. sum([1,2,3]) >>> 6 sorted(list) : 排序,返回排序后的list. len(list) : list长度,len([1,2,3]) divmod(a,b): 获取商和余数. divmod(5,2) >>&g

python3 元祖内置函数

元组和列表是类似的,只不过元组是对列表的二次加工列表:list,元素可以修改或增加li=[1,2,3,4,5]元组:tuple,不可修改,不能增加或删除,建议使用在数据不允许更改的地方tu=(1,2,3,4,5) 元组和列表一样也是可以被索引,切片,操作方式和列表相似 tu=(1,2,3,4,) v=tu[0] print(v) v1=tu[0:2] print(v1) 运行结果1(1, 2) #如何将字符串转化为元组#直接用tuple进行转换,不需要for循环 s="chenchao"

Python3中的内置函数,实例讲解-每日持续更新

all >>> m = [] >>> n = [1,2,3] >>> l = [1,''] >>> all(m) True >>> all(n) True >>> all(l) False >>> dir Without arguments, return the list of names in the current local scope.eg: >>> d

python3基础之“内置函数运行实例(1)”

1.type:查看当前字符串的类型 1 c='123' 2 print(type(c),c) 3 b= int(c) 4 print(type(b),b) 5 6 num="01010" 7 a=int(num,base=16) 8 print(a) 9 10 >><class 'str'> 123 11 >><class 'int'> 123 2.bit_length:查看当前数字的二级制多少位 1 a=10 2 v=a.bit_len

匿名函数、内置函数与模块

一.匿名函数 Python使用lambda来创建匿名函数,不再使用def语句这样标准的形式定义一个函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去 lambda函数拥有自己的名称空间,且不能访问自有参数列表之外或全局名称空间里的参数 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率 适合临时的一次性的使用场景 语法:

(列表推导式,生成器表达式,内置函数)

一,列表生成式 示例一: 生成1~100的列表 生成1-100的列表 1 2 3 4 5 li = [] for i in range(1,101):     li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期~11期li = []for i in range(1,12): li.append('python{}期'.format(i))print(li) 执行输出: ['python1期', 'python2期', 'python3期'...]

python之有用的3个内置函数(filter/map/reduce)

这三个内置函数还是非常有用的,在工作中用的还不少,顺手,下面一一进行介绍 1.filter 语法:filter(function,iterable) 解释:把迭代器通过function函数进行过滤出想要的数据 用法:可以设置一个迭代器,然后把相同属性的元素过滤出来,如下所示 list1 = [1,2,3,4,5,6,7,8,9,10] listTemp = filter(lambda x:x%2==0,list1) 上面的意思是过滤出偶数(即被2整除的数),其中使用了匿名函数lambda,非常简

三元运算式、lambda表达式、内置函数map、reduce、filter以及yield生成器

一.三元运算(式) 对于一般简单的if else条件判断句可以用三元运算来表示 具体模式为: if condition:   expr1 else:   expr2 等价于: expr1 if condition else expr2 解释:如果if condition条件成立就执行expr1表达式,否则就执行else expr2表达式 示例① >>> if 2 == 2: ...    name = 'cool' ... else: ...    name ='hot' ...  &g