看完这10招,你会有收获的

浏览: 1555

这是菜鸟学python的第37篇原创文章


阅读本文大概需要5分钟

  • Python中最最重要的数据结构 字典和列表,虽然我们前面讲过,但是有一些小的技巧和绝招,大家平时一般都不知道

  • 我总结了一些我以前遇到的问题,记录了一些技巧分享给大家.希望能对大家提高功力有所帮助

  • 后面我们就开始讲面对对象了,所以关于字典和列表这是最后一篇了


1.Python的中拷贝

a=[1,2,3]
b=a
b.append(4)
print id(a),a
print id(b),b
>>
39161288 [1, 2, 3, 4]
39161288 [1, 2, 3, 4]

用id()函数来查看对象的唯一识别号,发现a,b是一样的,原因是因为b只是a的引用,都是同一个地址,并没有实现真正的copy

怎么解决呢,如果你想修改一个对象,但是又不需要改动原对象,必须要引入copy模块

import copy
a=[1,2,3]
b=copy.copy(a)
b.append(4)
print 'a:',a
print 'b:',b
>>
a: [1, 2, 3]
b: [1, 2, 3, 4]

当然若你已经知道了拷贝对象的类型,对于列表L,直接list(L)做浅拷贝,或者L[:],对于字典d,调用dict(d),对于集合拷贝集合s,调用set(s)

2.如何把字典的缺省值为100

aDict={}.fromkeys(('aa','bb','cc'),100)
for k,v in aDict.items():
print k,v
>>
aa 100
cc 100
bb 100

3.如何让列表中的元素存在就返回,不存在就返会默认值

你有一个列表L,一个索引号i, 有的时候我们希望当i是L的有效索引时获取L[i],若不是有效索引,返会一个默认值v,其实这个问题若是字典很容易用L.get(i,v)

d={1:'aa',2:'bb',3:'cc'}
print d.get(4,'xx')
>>
xx

列表怎么破,解决方案#列表的下标是负数的[-len,len),切记切记


4.循环访问序列中的元素和索引

我们需要循环访问一个序列并且每一步都知道自己已经访问到的索引,并替换掉对应的值因为Python默认的循环方式是完全不依赖索引的

比如我们要把列表中的10替换成3,解决方案:

list1=[1,2,10,4]
for index ,item in enumerate(list1):
if item>9:
list1[index]=3
print list1
>>
[1, 2, 3, 4]

或者直接变成字典去处理: dict(enumerate(list1))


5.如何用字典格式化长的字符串

aInfo={'Wangdachui':3000,'NiuYun':2000,'LinLing':4500,'Tianqi':8000}
template='''
Welcome to the pay wall.
NiuYun' salary is %(NiuYun)s.
Wangdachui's salary is %(Wangdachui)s.
'''
print template%aInfo
>>
Welcome to the pay wall.
NiuYun' salary is 2000.
Wangdachui's salary is 3000.


6.字典的更新

一般用在已经设定好了数据结构,比如股票的信息(股票的价格的变动),工资单啊(工资的变动,人员的增加),key一般不变,只是变value,一招非常实用

aInfo={'Wang':3000,'NiuYun':2000,'Lin':4500,'Tianqi':8000}
bInfo={'Wang':4000,'NiuYun':8000,'Ming':3300}
aInfo.update(bInfo)
print aInfo
>>
{'Wang': 4000, 'Tianqi': 8000, 'Lin': 4500, 'NiuYun': 8000, 'Ming': 3300}

7.删除字典


8.集合里面的常用的内置函数

主要用作判断差,补,类似运算符<,>,|,&


9.打印文件夹中英文混合的文件

|---abc.txt---
|---test123.txt
|---大家好
for name in os.listdir('.'):
print name.decode('gbk')#win下的中文编码都是gbk

10.找到两个字典的相同的内容



好了Python10招小技巧就讲到这里啦,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

最后说一下,原创真的不易,希望大家能够给点支持,欢迎转发转发转发,留言留言留言,重要的事情说三遍,也是对我的一点鼓励和动力.

也欢迎更多喜欢Python的同学关注 菜鸟学python,一起来学python吧 长按下方的二维码即可关注.


推荐 0
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册