python基础-内置函数2
来源:互联网 发布:淘宝女舞蹈裤 编辑:程序博客网 时间:2024/06/05 16:07
- reversedreverse
- slice
- decodeencoding
- bytearraybytes
- memoryview
- ordchrasciirepr
- enumerate
- allany
- zip
- filter
- map
- sorted
reversed\reverse
l = [3,4,2,5,7,1,5] #ret = reversed(l)print(ret)print(list(ret))print(l)l.reverse()print(l)print(list(reversed("safly")))print(list(reversed([1,3,5])))print(list(reversed((1,3,5))))#字典不能reversed# print(list(reversed({"a":1,"b":3})))
输出如下:
<list_reverseiterator object at 0x00B22170>[5, 1, 7, 5, 2, 4, 3][3, 4, 2, 5, 7, 1, 5][5, 1, 7, 5, 2, 4, 3]['y', 'l', 'f', 'a', 's'][5, 3, 1][5, 3, 1]
如下是不可行的
s = "safly" s.reverse() s = (1,2) s.reverse()
错误如下:
Traceback (most recent call last):4 File "E:/python/py_pro/3.匿名函数.py", line 45, in <module> s.reverse()FalseAttributeError: 'str' object has no attribute 'reverse
因为是不可变类型的
slice
l = (1,2,23,213,5612,342,43)sli = slice(0,5,2) #实现了切片的函数print(l[sli])
输出如下:
(1, 23, 5612)
decode\encoding
#网络编程的时候:能在网络上传递的必须是字节print("---------")s = "s".encode("utf-8")print(s)print(s.decode(encoding="utf-8"))print("---------")s = "我的".encode("utf-8")print(s)print(s.decode(encoding="utf-8"))
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py---------b's's---------b'\xe6\x88\x91\xe7\x9a\x84'我的Process finished with exit code 0
bytearray\bytes
ret = bytes('你好',encoding='utf-8')print(ret)print(ret.decode(encoding='utf-8'))print("----------")ret = bytearray('alex',encoding='utf-8') #对比较长的字符串做修改的时候,指定某一处进行修改,不会改变这个bytearry的内存地址print(ret.decode(encoding="utf-8"))print("改变前id:",id(ret))print(ret[0])ret[0] = 65print(ret)print("改变后id:",id(ret))
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.pyb'\xe4\xbd\xa0\xe5\xa5\xbd'你好----------alex改变前id: 656307297bytearray(b'Alex')改变后id: 6563072Process finished with exit code 0
memoryview
memoryview() 函数返回给定参数的内存查看对象(Momory view)。
ret = memoryview(bytes('你好',encoding='utf-8'))print(len(ret))print(bytes(ret[:3]).decode('utf-8'))print(bytes(ret[3:]).decode('utf-8'))
输出如下:
6你好
ord\chr\ascii\repr
print(ord('a'))print(chr(97))print(ascii(97))print(repr(1))print(repr('1'))print('name : %r'%('金老板'))print(repr("safly"))print(repr([1,2]))print(repr(1))print(repr((1,2)))print(repr({"a":1}))
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py97a971'1'name : '金老板''safly'[1, 2]1(1, 2){'a': 1}Process finished with exit code 0
enumerate
l = ["afly",1,3,4]for i in enumerate(l): print(i)for i in enumerate(l,1): print(i[0],i[1])for i,j in enumerate(l,1): print(i,j)
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/python.py(0, 'afly')(1, 1)(2, 3)(3, 4)1 afly2 13 34 41 afly2 13 34 4Process finished with exit code 0
all、any
print(all([1,2,3,4,0]))print(all([1,2,3,4]))print(all([1,2,3,None]))print(all([1,2,3,'']))print(any([True,None,False]))print(any([False,None,False]))
输出如下:
FalseTrueFalseFalseTrueFalse
zip
#拉链函数zip argument #1 must support iteration#列表print(list(zip([0,1,2,3,4],[5,6,7,8],['a','b'])))#元组print(list(zip((1,2,3),(2,5))))#字典print(list(zip({"a":1},{"b":2})))#混合元组+列表print(list(zip((1,0),[2,0])))#混合元组+列表print(list(zip((1,0),[2])))#混合元组+字典print(list(zip((1,0),{"a":1})))#混合列表+字典print(list(zip([1,0],{"a":1})))print(list(zip((1,0),(2,))))#以下2种错误# print(list(zip(1,2)))# print(list(zip((1,0),(2))))s = (2)print(type(s))
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py[(0, 5, 'a'), (1, 6, 'b')][(1, 2), (2, 5)][('a', 'b')][(1, 2), (0, 0)][(1, 2)][(1, 'a')][(1, 'a')][(1, 2)]<class 'int'>Process finished with exit code 0
filter
#过滤函数def is_odd(x): if x>10: return Trueret = filter(is_odd, [1, 4, 6, 7, 9, 12, 17])print(list(ret))li = ["tss",None,""," ","en"]def method(s): return s and s.strip()ret = filter(method,li)print(list(ret))print(li)
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py[12, 17]['tss', 'en']['tss', None, '', ' ', 'en']Process finished with exit code 0
map
filter和map
参数很相近:都是一个函数名+可迭代对象
且返回值页很相近:都是返回可迭代对象
区别
filter是做筛选的,结果还是原来就在可迭代对象中的项
map是对可迭代对象中的每一项做操作的,结果不一定是原来就在可迭代对象中的项
ret = map(abs,[-1,-5,6,-7]) #abs(-1) = 1 abs(-5) = 5print(list(ret))l = [1,2,3,4,5,6,7,8]def func(x): return x*xret = map(func,l)print(list(ret))print(l)
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py[1, 5, 6, 7][1, 4, 9, 16, 25, 36, 49, 64][1, 2, 3, 4, 5, 6, 7, 8]Process finished with exit code 0
sorted
字典、字符串、元组、集合都不能调用sort方法(类似的reverse也是)#sort 是直接修改原列表的顺序,节省内存#sorted 是生成一个新列表,不改变原来的列表print(sorted('123456'))print(sorted((2,4,-1)))print(sorted([-3,6,-7,0,9]))print(sorted({1:'q',3:'c',2:'g'}))print(sorted({1: 'q', 3: 'c', 2: 'g'}.keys()))print(sorted({1:'q',3:'c',2:'g'}.values()))print(sorted({1:'q',3:'c',2:'g'}.items()))#TypeError: 'int' object is not iterable# print(sorted(12,3))print("------默认小到大,反转后大到小--------")print(sorted([-5,3,-4,2,-1],reverse=True))print("------绝对值从小到大排列--------")print(sorted([-5,3,-4,2,-1],key=abs))print("-------排序前调用方法-----")def method(s): return s + 1print(sorted([9,3],key=method))l2 = ['ajkhs',(1,2),'a',[1,2,3,4]]print(sorted(l2,key=len,reverse=True))s = ["A","B","CS"]def com_flag(s): return s.lower()print(sorted(s,key=com_flag))#print(sorted(['bob','about','Zoo','Credit'],key = str.lower))
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/2.内置函数.py['1', '2', '3', '4', '5', '6'][-1, 2, 4][-7, -3, 0, 6, 9][1, 2, 3][1, 2, 3]['c', 'g', 'q'][(1, 'q'), (2, 'g'), (3, 'c')]------默认小到大,反转后大到小--------[3, 2, -1, -4, -5]------绝对值从小到大排列--------[-1, 2, 3, -4, -5]-------排序前调用方法-----[3, 9]['ajkhs', [1, 2, 3, 4], (1, 2), 'a']['A', 'B', 'CS']['about', 'bob', 'Credit', 'Zoo']Process finished with exit code 0
阅读全文
0 0
- python基础-内置函数2
- Python基础内置函数
- python基础-----内置函数
- Python-基础-内置函数小结
- python基础-内置函数1
- python基础31[python内置函数列表]
- Python基础8--内置高阶函数
- python基础-类内置函数、类内置方法
- [Python入门及进阶笔记]Python-基础-内置函数小结
- Python基础 7 ---- Python内置sort和sorted函数
- [Python入门及进阶笔记]Python-基础-内置函数小结
- python函数: 内置函数
- Python基础3(内置标准函数的使用一)
- Python零基础入门之七变量与内置函数
- Python基础(一、变量和 常用内置函数)
- python基础-08-内置函数、作用域、闭包、递归
- python内置函数汇总(2)
- python内置函数第四讲(2)
- 使用互斥锁和条件变量实现实现读写锁
- Android通过代码模拟物理、屏幕点击事件
- JavaScript6里出现了哪些新语法、新特征
- 开发状态下百度的ak的获得
- C++ &继承(单继承.多继承.菱形(虚拟)继承)
- python基础-内置函数2
- 流媒体SMIL相关
- RedHat离线安装htop源码包
- JS内置对象Array,Boolean,String,Number
- pioneer3-at dx lx urdf gazebo
- 【AI_数学知识】线性代数
- Android 内存分析
- python image
- double与float的详解