Python学习之路:基础知识之内置函数
Posted studying-du
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之路:基础知识之内置函数相关的知识,希望对你有一定的参考价值。
1.迭代器相关
- iter( )获取迭代器
- next( )获取迭代对象
1 lst = [‘白蛇传‘, ‘骷髅叹‘, ‘庄周仙游‘] 2 3 it = lst.__iter__() 4 print(it.__next__()) 5 print(it.__next__()) 6 print(it.__next__()) 7 8 # it = iter(lst) # 内部封装的就是__iter__ 9 # print(next(it)) 10 # print(next(it)) 11 # print(next(it)) # 内部封装的就是__next__
2.内存相关
- id( )获取到对象的内存地址
- hash( )获取到对象的哈希值(int, str, bool, tuple)
1 lst = [‘白蛇传‘, ‘骷髅叹‘, ‘庄周仙游‘] 2 3 print(id(lst)) 4 print(hash(‘123‘))
3.数字相关
1 print(bin(5)) # 5的2进制 0b 二进制 2 3 print(oct(8)) # 0o八进制 4 5 print(hex(16)) # 0x十六进制 6 7 print(abs(32)) # 绝对值 8 9 print(divmod(10, 3)) # 计算商和余数 10 11 print(round(3.15)) # 四舍五入 12 13 print(pow(2, 4)) # 求次幂 14 15 print(sum([1, 3, 4], 6)) # 求和 16 17 print(min([1, 3, 4])) # 求最小值 18 19 print(max([1, 3, 4])) # 求最大值
4.字符串相关
1 # 反转 2 lst = [1, 3, 4] 3 ll = reversed(lst) 4 print(list(ll)) 5 6 # 切片 7 lst = [‘马化腾‘, ‘码云‘, ‘马大帅‘, ‘马超‘] 8 s = slice(1, 3, 2) # 从1切到3,每两个出一个 9 print(lst[s]) 10 print(lst[1:3:2]) 11 12 s = ‘你好啊,不要睡了,我也困!‘ 13 print(memoryview(s.encode(‘utf-8‘))) # 函数返回给定参数的内存查看对象 14 15 print(ord(‘a‘)) # 查看字母a的编码位置
16 print(chr(20013)) # 根据编码位置返回相应的字符 17 18 print(‘周杰伦说:"昆凌难看"‘) 19 print("周杰伦说:"昆凌难看"") # 转义 20 print(repr("周杰伦说:"昆凌难看"")) # repr原样输出字符串 21 print(r"周杰伦说:"昆凌难看"") # 原样输出字符串 22 print(repr("周杰伦说")) 23 # c: 在字符串中是转义字符 24 # 换行 25 # 制表符 26 # \ 27 # " ‘ 28 # ‘ ‘
1 # eval 执行字符串类型的代码 2 3 s = "5 + 5" 4 ret = eval(s) #动态执行一个代码片段,侧重点在返回上 5 print(ret) 6 7 a = "{‘name‘:‘汪峰‘, ‘age‘: ‘48‘}" 8 d = eval(a) # 还原回字典,列表 9 print(d[‘name‘]) 10 11 12 # exec()执行一段代码 13 14 s = "a = 10" 15 exec(s) # 执行代码 16 print(a) # pycharm里的报错信息不一定是对的
5.逻辑相关
print(all([True, 1, 1, 1])) # add的意思 print(any([False, 0, 1])) # or的意思
6.其他
compile() 编译一段代码
1 s = "for i in range(10): print(i)" 2 c = compile(s, "", "exec") 3 exec(c) 4 5 6 s = "5+9" 7 c = compile(s, "", "eval") 8 ret = eval(c) 9 print(ret)
zip() 打包数据
1 lst1 = [‘甜蜜蜜‘, ‘往事只能回味‘, ‘难忘今宵‘, ‘枫红的回忆‘, ‘十年‘] 2 lst2 = [‘邓丽君‘, ‘韩宝仪‘, ‘李谷一‘, ‘王宝强‘] 3 lst3 = [‘2000‘, ‘3000‘, ‘5‘, ‘120‘] 4 a = zip(lst1, lst2, lst3) # 水桶效用,# 十年没有对应位置的数据,略过不做记录 5 print(‘__iter__‘ in dir(a)) # 可迭代的 6 for i in a: 7 print(i) # 十年没有对应的数据,略过不做记录
7.sorted
语法:sorted(iterable,key=None,reverse=False)
iteralbe-->接可迭代对象
key-->指定排序规则
reverse-->是否逆序,默认为False不逆序,逆序时令为True
1 lst = [1, 3, 2, 5, 4] 2 lst.sort() #列表独有的方法 3 print(lst) 4 5 # sorted是通用的方法 6 """ 7 lst = [1,3,2,5,4] 8 lst2 = sorted(lst) 9 print(lst) #原列表不会改变 10 print(lst2) #返回的新列表是经过排序的 11 lst3 = sorted(lst,reverse=True) 12 print(lst3) #倒叙 13 14 """ 15 dic = {1: ‘a‘, 3: ‘c‘, 2: ‘b‘} 16 print(sorted(dic)) # 字典排序返回的就是排序后的key 17 18 # 和函数组合使用 19 # 定义一个列表,然后根据一元素的长度排序 20 lst = [‘天龙八部‘,‘西游记‘,‘红楼梦‘,‘三国演义‘] 21 # 计算字符串的长度 22 def func(s): 23 return len(s) 24 print(sorted(lst,key=func)) 25 26 # 和lambda组合使用 27 lst = [‘天龙八部‘, ‘西游记‘, ‘红楼梦‘, ‘三国演义‘] 28 print(sorted(lst, key=lambda s: len(s))) 29 30 lst = [{‘id‘: 1, ‘name‘: ‘alex‘, ‘age‘: 18}, 31 {‘id‘: 2, ‘name‘: ‘wusir‘, ‘age‘:17}, 32 {‘id‘: 3, ‘name‘: ‘taibai‘, ‘age‘: 16}, ] 33 # 按照年龄对学生信息进行排序 34 print(sorted(lst, key=lambda e: e[‘age‘]))
8.filter
语法:ilter(function,iterable)
function-->用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据。
iterable-->可迭代对象。
1 lst = [‘张无忌‘, ‘张铁林‘, ‘是可信‘] 2 3 # 定义一个函数,这个函数在应用filter时传入 4 5 def func(el): 6 if el[0] == ‘张‘: 7 return False 8 else: 9 return True 10 11 12 f = filter(func, lst) 13 print(‘__iter__‘ in dir(f)) 14 15 for e in f: 16 print(e)
9.map
语法: map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function
1 lst = [1, 3, 4, 5] 2 3 4 def func(el): 5 return el ** 2 6 m = map(func, lst) # 把后面的可迭代对象中的每一个元素传递给map函数 7 print(list(m)) # 用list输出可迭代对象
以上是关于Python学习之路:基础知识之内置函数的主要内容,如果未能解决你的问题,请参考以下文章