|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的用法,就像写作文一样,好的名言警句要多背诵一些,写作的时候,肚子里的墨水多了才能才思泉涌,写出更多的好代码。
5 x, k7 P7 [8 L7 O; B7 _, F
+ ?3 _% R' ~' G6 p* @1.遍历一个序列: @4 D" R$ \9 D- S1 ]$ N C! r
2 t. A* k' F+ W- x [3 Q) X! W
3 ~3 g7 C/ A3 l. M% x
8 v2 f5 F% l8 g9 K. y评: Python中的序列是使用频率非常高的,很多传统语言过来的,习惯用下标遍历,Python中序列是可迭代的,直接for即可!
; }# |- N5 x9 g J, M2 v% H
& P2 I* [3 E% u" A" X如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学习qq群:250933691,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我 $ J1 \5 ?5 r5 e6 i
3 r5 X* {5 n/ O3 P
2.遍历倒序
9 t+ e% B2 [9 d9 r; O. v3 q2 ?9 u# s" s1 m' K4 k
* N, [# w& R4 |
+ B8 ^8 q% @4 z: J. J评:用range的负数来遍历,不如直接反转遍历4 q4 O" S" x" B, {. P+ s8 q$ Q" L
3 b7 Q' ^- _$ Q: F! k" f. `/ Q
3.遍历2个collection* J3 m: ^3 n& F; ]1 n
$ }5 F0 Z! t# W; O
评: zip真的不错,尤其是处理2个序列非常简洁,在Python2.x还需要用itertool.izip来返回迭代器,现在Py3可以直接使用zip返回迭代器。4 `8 g2 U P* ^8 g3 [9 E
, a; B+ p9 e. O Y+ A( l; F4.遍历排序的序列# B% e" n$ L. n6 p' A
1 _* ^0 k" F/ T$ B7 A3 l
5 A4 T2 i& N" h+ f
& ] M; q7 A M% e5 n评: sorted这个函数非常重要,尤其是入门的菜鸟一定要记住这个函数,很多妙的用法都跟它有关。
% S. ~/ Y; y- Q, |$ k$ [* a
0 X$ _& X/ ~% a" e$ @+ t# l5.自定义排序% S3 Z2 V6 \6 q. x/ l' P! _/ f
3 P6 y. {$ r9 U! y: l5 M3 E
- [" ]1 b# ^5 @
7 F Q: n! S5 F6 e3 k; E评:排序是一个时时刻刻都遇到的文章,有列表排序,字典排序,排序里面的key用法很重要,甚至自定义一些函数去处理: W: S9 p7 t: s# d
6 G/ u4 V b7 B$ I2 K
6.遍历文件遇到指定字符退出
4 ~& D+ [, j% t5 T9 C6 e
" |+ ^( E$ W2 y0 Q5 h) C) K
" o6 Z; a6 y0 t) L J
3 |( P0 ?: G( `. q/ m7 r评:iter是一个内置函数用来生产迭代器,partial的不断的读入文件中32字节,注意iter引入第二个参数,表示当读入的内容是''的时候,会触发生成器stop!
) [: E; B9 I* z/ l M
0 K& @9 v2 S; z& U2 {; r7.函数遍历多出口问题
+ W# [2 R) n! {! y/ C
& y( Q6 O; n. `/ k( E0 i# t- o0 f1 h4 J" S( r; b8 N3 C% f; F
+ E# H% O) R, f' k" e5 |
评:for else这种用法跟传统的很不一样,一开始有点不习惯,熟悉了之后发现在搜索的时候经常会这样写。
- Q1 v9 x U6 _8 G
1 ]/ P. }7 _- H7 u6 N1 i( x8.字典的循环 \' Q% \2 ^2 I+ F, h5 W
5 V$ @$ N0 T$ ?! N( n1 \
评:字典的循环,这个是基本功,必须要掌握。
1 Q4 F6 s; i# Y
) A- ]: p {1 S1 M. S u J% M9.字典的统计
& W! `" g5 C: R( P0 z) F* H1 u6 O5 I. Y! q$ H
/ w4 P2 F H7 l' y
) q& r* X f% U! l( O* J8 b8 r评:巧妙的利用字典的get用法,取不到value的时候用缺省值0( L! G9 X, C3 z& h5 O l
J& q$ F6 y* U5 `* d10.字典的统计. Q5 V; p+ q2 ^1 P( _. Y1 Y) k
' g& X7 n N* X2 W( L+ [) f" L6 X2 j5 i: C
+ _( W) ?7 W7 C- o4 i& D
评:有点类似合并同类项,这样的场景一般用defaultdict处理会简洁很多
! L6 i; Y/ E6 [. [0 u; h/ u* w# G! d- H" x8 n7 F/ @% ~0 O5 z
11.展开序列* M3 c' F: }. Z1 _
$ D/ f$ f; Y/ \. m
( o& L1 @0 `2 U$ W& r: ^* i' R: [" a2 s) ~6 t$ q/ o2 F, I, E
评:要学会利用tuple展开,会更快更好,而且很多源码都是这样处理的。
; `4 r* r' l) a6 k1 S
: ?2 G9 r2 X6 h1 `; {/ W; O12.交换变量
, [* F) v/ d: G8 n; L* v1 o
& ~" F. x6 z( ]4 n
, U6 \9 O3 i8 K6 h6 C) s
3 S2 K8 T/ S9 B; ^: h" U评:让我想起来的冒泡排序,交换变量,Python可以直接在一行中交换!$ ^9 b! l# ~" ?0 N6 I
: H: ]0 c9 J% h9 d; h
13.更新序列 |
|