% _+ p2 H1 v/ Z9 y) w" F
; L$ C. G9 Y+ x0 M; A$ K 一行Python代码到底有多强大? / U3 h4 G7 N& ` j3 z$ x6 _Python是一门非常简洁而优美的编程语言,在其他编程语言中需要繁琐的代码逻辑才能完成的事情,往往在Python中一行就可以解决。 ' p2 B5 l1 b$ {' d d: M4 U* |: b/ I
5 y: a4 x# g g6 ~; L9 b. E9 `这样,它不仅可以减少开发工作量,还能够大大提升可读性,避免在开发复杂逻辑过程中造成的失误。# t; U* Y! B; T7 `# L% M# O, F& w
3 _6 m( N; d" E6 d- p* ]3 j % H4 V! p5 f) h. i- l本文,就来给大家介绍10个一行代码到底有多强大! : M$ _3 H& ]7 G! z# }# [. B9 K 2 A0 M" m3 N/ }" G0 c; N' _8 M 7 C: K' ?# d' a* L: h6 K, H3 E1. 交换变量% j; j. w% f# w7 |
如果大学学过C/C++编程课的同学,对于交换变量一定不会陌生,这是最基础,也是非常常用的。 9 D) Q. |1 E+ N& a ( Q+ J! q' t* M ' E! @" b/ J* ?& F" y$ b如果用C/C++实现交换变量,需要这样的操作:+ o# I+ S( ]/ h
8 w5 ]) r# H8 l2 O i7 H6 L, D ^ - w w) x( @1 t0 Z4 d6 Tint a, b, c; % s; ~: M6 E9 M$ n0 qc = a;# V" w6 Q$ w8 p H6 W8 r
a = b;5 p0 ]8 t# g2 A/ z. m% Z
b = c; , \- x/ q4 o3 u5 ?; a. b' m. X0 Q而在Python中,一行代码就可以完成变量的交换。 2 _ s0 K: l. [/ L" n& }2 `2 M3 U1 _" ~( H9 ~) m9 d% Q
" V# ?: s7 Y+ w6 m+ Q8 X$ ?
# a = 1; b = 2% N3 T% F# w T7 }
a, b = b, a 4 D9 C) }( s1 [) `* M5 \2 ?- Y# print(a,b) >> 2 1 ) T& G: [7 {4 w$ o3 g9 R这样,我们就不需要去额外定义一个临时变量,不仅简单,而且非常直观。 $ V* @. x/ v4 J: t+ E8 b/ n* n
! z; n! z; H* k1 i5 }3 \1 x- B$ ~5 @2. 多变量分配. U) g8 V! |3 B3 E2 r* Y
如果你在分配变量时同时包含多种类型的变量,这在很多编程语言中是无法实现的,但是在Python中一行代码就可以实现: + `' }- t8 m5 g D, b- \ 1 C* _& o! a" U8 ?# W: B9 s8 g$ X: Y4 `2 Z
a, b, *c = [1,2,3,4,5], n v/ m4 @/ g) p& X+ ~" i, P
# print(a,b,c) >> 1 2 [3, 4, 5]; o9 i$ `6 S' W3 b7 z8 y. k
在Python中,可以通过符号*把列表元素分配给指定的变量,这也叫unpacking。6 Y' w" D$ B4 _! C# G6 X
! l- z C2 r- m( d( R; y) ^/ U/ X% Y' j
3. 每隔一个元素求和0 u, Y- ]; ]4 y
如果有这么一个列表[1,2,3,4,5,6],你想每隔一个元素进行求和[2, 4, 6],可以这样使用: " ?: ^; w5 x- v! B& f5 o ( U2 F" V4 z* D; k8 C' h1 m3 F ( K- m s0 G( O/ @# a = [1,2,3,4,5,6] / d+ i8 V+ Y" a6 y* j8 Z+ K( Rs = sum(a[1::2]) 7 e" T" o; [3 _/ O" a# print(s) >> 12 6 c x' G$ u3 x" q这里,不需要利用复杂的逻辑,只需要合理利用Python切片就可以实现,[1::]标识,从第2个元素直到列表结束。4 W; L% b' y- B, h+ a, [3 ?
& B% z+ H- y1 O% q3 u: {, m7 ?2 `( M
4. 删除多个元素 8 f( x; g. ^5 z6 o+ W+ c0 j9 s% n# a = [1,2,3,4,5] 6 H! }' f" F5 l; S3 idel a[::2]& @( H) K6 D( O9 U# L
# print(a) >> [2, 4] " X0 p6 V B5 {( {强大的切片语法也可以用于一次删除多个列表元素。 ( l% |, f* w! t9 L. p3 U/ V 6 u2 P( \8 c, C$ H0 Q3 e6 O; Z% T3 H' H3 F! H9 M2 y
5. 将文件行读入到数组( T% P' t5 `8 j, K7 z5 C5 L
如果条件或循环语句比较简单的话,可以利用列表达式去简化代码:' O1 e0 L& ^* ?* o
3 `/ O& P N0 v$ J! ?6 G; h- i5 V* _3 A5 U+ P! L4 R/ D2 N
c = [line.strip() for line in open('file.txt')] 6 f6 ~# y$ t2 o9 K. B" M6. 将字符串写入文件 . ]2 K' X- j* \( P对比于其他编程语言常用的open、close去读写文件,Python提供的with方法更加简单,而且不用特意去关闭文件: 5 P1 Z! P' k \0 f3 f3 ?, s/ w! m2 G/ k j; f