python 小技巧易混点汇总(不定时更新)

mac2024-05-21  25

[] 列表   {} 字典  / 集合  --->散列表 () 元组

[x for x in range(10)]  列表推导 ---->得出列表 --->迭代协议 (x for x in range(10))  生成器表达式--->用一个生成一个 (yield  next() )

#集合 In [7]: a={'a','b','c','d'} In [9]: type(a) Out[9]: set #字典 In [11]: ad ={'a':'d','b':'c'} In [12]: type(ad) Out[12]: dict #元组 In [13]: a =(1,2,3,4) In [14]: type(a) Out[14]: tuple #生成器 In [15]: a =(x for x in range(2)) In [16]: type(a) Out[16]: generator

set函数使用

去重xxx 在xxx 中出现的次数 In [51]: a={'a','b','c','d'} In [52]: b={'a','b','e'} In [55]: len(a&b) Out[55]: 2

 

用* 处理多余的元素 

a,*b,c=range(10) In [40]: a Out[40]: 0 In [42]: c Out[42]: 9 In [43]: b Out[43]: [1, 2, 3, 4, 5, 6, 7, 8]

用 _ 占位符处理不需要的东西

In [45]: _,filename = os.path.split('/home/zey/test.sh') In [46]: filename Out[46]: 'test.sh'

字符串整数元组列表对象创建 问题

对于元组 t[:]  tuple(t) 都不会创建新的副本,而是返回一个对象的引用对于列表 a[:] list(a) ,会创建新的副本对于字符串,和一些小的整数,使用了一种叫驻留的优化措施,防止重复'创建'热门数字,因此 字符串和整数比较使用 " == " 而不是 "is" 列表 In [13]: t1 =[1,2,3,4] In [14]: t2 = t1[:] In [15]: t3 = list(t1) In [16]: t1 is t2 #看这里 Out[16]: False In [17]: t1 is t3 #看这里 Out[17]: False In [18]: id(t1) Out[18]: 77672616 In [19]: id(t2) Out[19]: 76649816 In [20]: id(t3) Out[20]: 77710720 元组 In [22]: t1=(1,2,3) In [23]: t2 =t1[:] In [24]: t3 =tuple(t1) In [25]: t1 is t2 #看这里 Out[25]: True In [26]: t1 is t3 #看这里 Out[26]: True In [27]: id(t1) Out[27]: 77693736 In [28]: id(t2) Out[28]: 77693736 In [29]: id(t3) Out[29]: 77693736 In [30]: t4=(1,2,3) In [31]: t1 is t4 #看这里 Out[31]: False In [32]: id(t4) Out[32]: 77722928 字符串 In [33]: s1='abc' In [34]: s2='abc' In [35]: s1 is s2 #看这里 Out[35]: True

 

 

最新回复(0)