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 次
posted @ 2018-10-21 14:53  今天的诸葛亮  阅读(133)  评论(0编辑  收藏  举报