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

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

[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函数使用

  1. 去重
  2. 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值