python中內建函数 python中内建函数和内置函数

python中eval是干嘛的以python 3.8.5150.0版本为例,python中eval函数作用如下:
1、计算字符串中有效的表达式,并返回结果 。
2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换) 。
3、将利用反引号转换的字符串再反转回对象 。
参数解析:
expression:这个参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当作一个python表达式进行解析和计算 。
globals:这个参数控制的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了 。
并且没有提供自定义的builtins(python的内建模块),那么会将当前环境中的builtins拷贝到提供的globals里,然后进行计算 。如果globals没有被提供,则使用python的全局命名空间 。
locals:这个参数控制的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是说当globals和locals中有冲突的部分时,locals说了算,它有决定权 , 以它的为准 。如果locals没有被提供的话,则默认为globals 。
python中的filter函数怎么用python filter内建函数
filter函数是python内建函数 , 可以操作任何可迭代类型 , 如list,tuple,string.
filter需要带上一个函数function和一个可迭代序列作为参数 。filter()将调用该function作用于每一个可迭代序列的元素 , 并返回一个由该function验证后返回值为true的元素组成新的可迭代序列 , 新序列的类型保持与filter参数序列的类型一致
2.filter与数字
下面用这个例子来说明:
#建个数字列表
numbers = [1,5,9,8,4,6,3,7]
#定义一个过滤标准,取小于5的数
def lessThanFive(element):
return element5
print filter(lessThanFive, numbers)
输出结果是列表:[1,4,3]
解说:此处的过滤函数lessThanFive必需带入一个参数(filter()会调用lessThanFive,参数是列表nembers中的每一个元素,一次一个) 。filter()返回所有值都是小于5的列表
3.filter与字符串
下面用如下例子说明:
#定义元组类型
names = ('Jack', 'Jill, 'Steve', '')
#筛选出名字
new_names = filter(None, names)
print new_names
输出结果是元组:
('Jack', 'Jill, 'Steve')
在元组names最后一个名字是空字符串,而filter的第一个参数是None,这说明需要使用identity函数(该函数是简单的返回该元素的)
因为python对空字符串,0和None作为False,所以上面的filter的语句就是移除空元素 。
4.filter和函数
目的:找出以J开头的名字
def startsWithJ(element):
if element:
return element[0] == 'J'
return False
j_names = filter(startsWithJ, names)
print j_names
输出结果是元组:('Jack', 'Jill')
注意到了吗,上面的2个结果都是tuple而不是list,再一次说明fliter的返回值类型与参数序列的类型保持一致
python基础数据结构:序列、映射、集合参考资料:
Python中常见的数据结构可以统称为容器(container) 。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器 。
一、序列(列表、元组和字符串)
序列中的每个元素都有自己的编号 。Python中有6种内建的序列 。其中列表和元组是最常见的类型 。其他包括字符串、Unicode字符串、buffer对象和xrange对象 。下面重点介绍下列表、元组和字符串 。
1、列表
列表是可变的,这是它区别于字符串和元组的最重要的特点 , 一句话概括即:列表可以修改,而字符串和元组不能 。

推荐阅读