|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的用法,就像写作文一样,好的名言警句要多背诵一些,写作的时候,肚子里的墨水多了才能才思泉涌,写出更多的好代码。' n: O+ e. I' s' a6 q" D
h. e+ |8 ?& W2 D7 Z8 |) |1.遍历一个序列
) M4 F: ~. L% Q8 y$ o+ C* h
- I- R3 W% m, ?3 k6 z
$ p6 M( f7 E5 ?* o v4 ^5 [' e# F* H! L
评: Python中的序列是使用频率非常高的,很多传统语言过来的,习惯用下标遍历,Python中序列是可迭代的,直接for即可!: ^# g% Y+ w3 z, c- e2 P2 T
6 n6 I5 L/ O" D! n5 Y如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学习qq群:250933691,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我 $ P' q8 |5 B+ I! x2 B! V
* f" Y1 [! T+ `9 ^. m
2.遍历倒序) O! p% x/ N. S/ T, Q# F, A
0 B/ f* r* B: D! b) N( q( z: h) M: K- }
h* J1 n7 s8 ?7 _- \6 B- S
7 f+ ?/ h; y. Z评:用range的负数来遍历,不如直接反转遍历
7 X$ c+ c: q: \8 S, s7 }, _7 a2 t5 Z1 a6 l7 Z
3.遍历2个collection
1 N+ i7 ^# o/ [& k( F) C4 h; n8 @) m+ w% t# g% u
评: zip真的不错,尤其是处理2个序列非常简洁,在Python2.x还需要用itertool.izip来返回迭代器,现在Py3可以直接使用zip返回迭代器。# d8 x: l" v3 F% f) ^" l' o% X3 p
' I9 R5 j" M4 N' G3 i) F- o/ I4.遍历排序的序列
6 a) ?+ Q- }3 `; ]3 C
( f: u5 |8 k7 g2 J3 G4 _7 i% d) a! P0 k
8 l* ?3 p! N% L1 L* |& K
评: sorted这个函数非常重要,尤其是入门的菜鸟一定要记住这个函数,很多妙的用法都跟它有关。4 R3 S* D4 {9 k" _: g" m
) }' a7 B$ {+ p( e) E! w
5.自定义排序! G( \0 j! w% @+ k
9 Y. |, v" ^$ @1 z- h( z \- v
: c: J( S; \9 E1 ]$ `
/ D$ n& w% ]# g9 \& P. \7 D, z# M评:排序是一个时时刻刻都遇到的文章,有列表排序,字典排序,排序里面的key用法很重要,甚至自定义一些函数去处理
5 p+ L7 u- C# w5 w+ D
, l: P! Y6 O: A v8 Q3 N2 `6.遍历文件遇到指定字符退出
+ a, I( y. |1 w2 L0 X8 N: w
\! o: f/ ^( D( K3 {5 q: Z- `2 o! f1 ]! y# e/ N1 ?& r- F% w
" y; \6 F' E! v
评:iter是一个内置函数用来生产迭代器,partial的不断的读入文件中32字节,注意iter引入第二个参数,表示当读入的内容是''的时候,会触发生成器stop!
2 Q" n# E$ r5 j& \4 x" T8 R2 j6 |) D* ^6 b8 c, m
7.函数遍历多出口问题4 c( M. N% V, v) a2 m7 r- |
* ~& M# l" }, ~8 N5 }
! f i/ a- O% O0 w7 [
8 {1 w8 j9 E0 D) _& q- [
评:for else这种用法跟传统的很不一样,一开始有点不习惯,熟悉了之后发现在搜索的时候经常会这样写。/ z; V1 l. ?* x: r. Y- B: i
4 e1 E! D" j2 g+ L- p. {
8.字典的循环# u) c h! y i
% v" R' E! @' V3 l评:字典的循环,这个是基本功,必须要掌握。/ J& d* r+ s/ q
4 @* ]9 Z- I: I2 O1 u# G
9.字典的统计" S/ m1 i W: D$ j2 x
4 M0 \: P0 d% i9 `
7 M; Z7 z7 y$ b, w7 n& G. P2 A1 ~" m
评:巧妙的利用字典的get用法,取不到value的时候用缺省值0
3 e% e. _ @2 [, u7 h9 ~0 l
' X3 G$ U* f% m10.字典的统计
& J; ~) u8 p! p: E* @# n; k9 s/ f7 H3 I
- A8 `. L$ O! M# o
3 V! J" Q* h, C9 V; h& r: J评:有点类似合并同类项,这样的场景一般用defaultdict处理会简洁很多7 A% x7 X2 g8 w; ^! J0 \* ^& f
. b* X8 F4 u5 N6 o; {
11.展开序列( w$ S5 p Y9 y! s8 y
) d# u/ N2 u! ]" \" h d
4 z! _, _9 @5 F2 [- Q/ v! t0 o9 o/ m6 m: Z
评:要学会利用tuple展开,会更快更好,而且很多源码都是这样处理的。
6 [/ z0 @. u7 L6 |5 i! X& H; v0 \8 T, h1 S' a
12.交换变量8 R( Y& }# g# e) R, K# O
. d( I6 _! h, s! a/ y
1 y+ ^% A5 @, h0 z% _
) _: r3 K# v/ f! H* D( z2 y; i
评:让我想起来的冒泡排序,交换变量,Python可以直接在一行中交换!$ p9 H9 F$ `$ V* W4 E4 \" d# ]- Y
( Q. V K6 G: @# n, D13.更新序列 |
|