python 的内置函数
abc(x)返回数字的绝对值
print(abs(-10)) #10
print(abs(10)) #10
boor(x) 返回与x等价的布尔值True或Flase
print(bool(None)) #False
print(bool(1)) #True
dir()返回指定对象或模块obj的成员列表,如果不带参数,则返回当前作用域内所有的标识符。
print(dir(obj))
#['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__',]
divmod(x,y)返回包含整商的余数的元组
print(divmod(9,4)) #(2, 1)
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法:enumerate(sequence, [start=0])
参数:sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
eval() 函数用来执行一个字符串表达式,并返回表达式的值
语法:eval(expression[, globals[, locals]])
参数:expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
exit(),quit()退出当前解释器环境
globals() 函数会以字典类型返回当前位置的全部全局变量。
>>>a='runoob'
>>> print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()
语法:isinstance(object, classinfo)
参数:object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True
locals() 函数会以字典类型返回当前位置的全部局部变量
>>>def runoob(arg): # 两个局部变量:arg、z
... z = 1
... print (locals())
...
>>> runoob(4)
{'z': 1, 'arg': 4} # 返回一个名字/值对的字典
map() 会根据提供的函数对指定序列做映射。
语法:map(function, iterable, ...)
参数:function -- 函数,有两个参数
iterable -- 一个或多个序列
>>>def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
pow() 方法返回 xy(x的y次方) 的值
pow(x,y) 等价于 x**y:
4**2 # 结果为16
4**2.5 # 结果为32.0
pow(x,y,z) 等价于 x**y%z:
4**2.5%3 # 结果为2.0
reversed 函数返回一个反转的迭代器。
# 字符串
seqString = 'Runoob'
print(list(reversed(seqString)))
# 元组
seqTuple = ('R', 'u', 'n', 'o', 'o', 'b')
print(list(reversed(seqTuple)))
# range
seqRange = range(5, 9)
print(list(reversed(seqRange)))
# 列表
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))
round() 方法返回浮点数x的四舍五入值
round(80.23456, 2) : 80.23
round(100.000056, 3) : 100.0
round(-100.000056, 3) : -100.0
sorted() 函数对所有可迭代的对象进行排序操作
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
nums = ['flower','flow','flight']
for i in zip(*nums):
print(i)
输出结果:
('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')
bin(),oct(),int(),hex()分别将数字转换为二进制,八进制,十进制,十六进制
>> bin(123)
'0b1111011'
>>> oct(123)
'0o173'
>>> hex(123)
'0x7b'
>>> int(0x33)
51
ord(),chr()第一个返回单个字符的ASSII码(python3支持unicode码),第二个返回某序数对应的字符
>>> chr(97)
'a'
>>> ord('a')
97
文章词频统计例子
def getText():
with open('471228.txt','r+',encoding='utf-8') as f:
f.seek(0)
txt = f.read().lower()#把全部英文字符转小写
fuhao = '''"'!#$%&()*+,-./:;<=>?@[\\]^_{|}~`''' #统计所有特殊字符
for ch in fuhao:
txt = txt.replace(ch,'')#把特殊字符标点替换为空格
return txt
hamlet = getText()
words = hamlet.split()#把所有空格去掉 返回单词组成的列表
sum_count = {}#创建空字典准备计数
for word in words:
sum_count[word] = sum_count.get(word,0) + 1 #字典的键为任意单词,值则为数量
items = list(sum_count.items())#返回元组组成的列表,每一个元组是一个键值对
#[('the', 2223), ('besetment', 1), ('of', 945), ('kurt', 20), ('lieders', 55), ('a', 1126)]
nwe_items = sorted(items,key=lambda x:x[1],reverse=True)#按照单词频次排序,也就是每个元组的下标1位置,然后倒序
n = 0#计算用
for i in nwe_items[:10]:#取出频次最高的前10个
x,y = i
n += 1
print("第{}名: '{}' 出现频次为 {} 次".format(n,x,y))
# 第1名: 'the' 出现频次为 2223 次
# 第2名: 'and' 出现频次为 1304 次
# 第3名: 'to' 出现频次为 1130 次
# 第4名: 'a' 出现频次为 1126 次
# 第5名: 'of' 出现频次为 945 次
# 第6名: 'he' 出现频次为 846 次
# 第7名: 'i' 出现频次为 666 次
# 第8名: 'was' 出现频次为 637 次
# 第9名: 'in' 出现频次为 584 次
# 第10名: 'his' 出现频次为 522 次