- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 557336 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 172574
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
) n/ [1 v v/ p6 A
$ `* b% ?- t: \# R9 L5 Q
一行Python代码到底有多强大?
8 L2 Z/ Y8 p) QPython是一门非常简洁而优美的编程语言,在其他编程语言中需要繁琐的代码逻辑才能完成的事情,往往在Python中一行就可以解决。
6 _" e# A [. M
( A5 S) d Q# ], s( Y! g4 ~# k& s7 c) z4 q; f7 C
这样,它不仅可以减少开发工作量,还能够大大提升可读性,避免在开发复杂逻辑过程中造成的失误。$ p! W, G: q3 t3 C$ B1 `9 m
6 H8 u% |! ~* P9 L' Z5 f4 [, `! `. L+ ]) j. J( x
本文,就来给大家介绍10个一行代码到底有多强大!
; v# v+ O, [' R }" I+ _: p3 @0 h
w4 ]( N$ Y; U9 Y" k1. 交换变量
3 f _$ m0 u; c; P5 k6 y如果大学学过C/C++编程课的同学,对于交换变量一定不会陌生,这是最基础,也是非常常用的。' U- p) p- B7 g
- N' M! ^3 K R' N. m( n
4 r. [7 f- X& V ?1 U如果用C/C++实现交换变量,需要这样的操作:7 E# V$ i$ T9 q. I
8 v6 N- x9 h1 J, X" Y! q
+ h" P. b- [: v3 Nint a, b, c;
; G& u, Q8 m9 f4 ]) y! {c = a;' H2 @9 @- M r2 Q" Y
a = b;) F! j7 E5 j2 v2 s- p
b = c;
0 [6 M7 i9 m* C: G4 e2 C而在Python中,一行代码就可以完成变量的交换。4 ^4 X/ w# k+ [9 M# ]
( M+ r) T& X4 W% s" [# s
: C: n! U# K8 d- ^* x# Q# a = 1; b = 2
$ m: r9 W7 X! S% w/ t2 p8 Oa, b = b, a+ P8 F0 j/ Q/ K8 |8 O& K" w
# print(a,b) >> 2 10 q7 @5 F% G8 \, h/ V/ h: j3 c
这样,我们就不需要去额外定义一个临时变量,不仅简单,而且非常直观。
5 J# ?, F! g* F) G F1 ^& A& v: c
2 T* g9 H7 z8 Q( @; j2. 多变量分配7 p! b$ S7 ?! p5 _. T k
如果你在分配变量时同时包含多种类型的变量,这在很多编程语言中是无法实现的,但是在Python中一行代码就可以实现:
" ?* w9 Q% i& G: b
1 a$ d2 n6 M% k3 w# s( ^: F+ z, q2 ]! J L& q1 v( K( m
a, b, *c = [1,2,3,4,5]- p* m2 Q% E- E- Y: B1 n5 U
# print(a,b,c) >> 1 2 [3, 4, 5]1 V$ U- j; t2 g _0 R$ W# E. ]6 p
在Python中,可以通过符号*把列表元素分配给指定的变量,这也叫unpacking。
( a: U0 T1 h- }/ {4 ^8 s7 \$ c
* ?* X* O7 B8 T2 t$ e$ e% J* Y k+ V" z# E) L! c J4 ^" J S
3. 每隔一个元素求和
; s: i' @" v3 m @4 q y) Y( g如果有这么一个列表[1,2,3,4,5,6],你想每隔一个元素进行求和[2, 4, 6],可以这样使用:
# e6 M- Q0 W9 J0 x: v
5 p) Y Y' E- |: i# [
% i+ T; k# s X, J( ^6 S# a = [1,2,3,4,5,6] e2 D) C5 ^; A8 v
s = sum(a[1::2])
# h* A4 N1 Z' R8 `( {# print(s) >> 12# A8 h4 Q! ~9 }3 r( |/ [
这里,不需要利用复杂的逻辑,只需要合理利用Python切片就可以实现,[1::]标识,从第2个元素直到列表结束。
+ R+ L8 p% F$ ^$ V% e+ p
; @# c3 L8 _: H3 w* A0 M- _! T
* k2 I1 N0 d' K4. 删除多个元素
: w5 |+ Y* j, h4 ?3 ]- Q# a = [1,2,3,4,5]
, L4 d; @3 a! M/ A0 mdel a[::2] B2 Q: x/ O8 A! O
# print(a) >> [2, 4]
; L4 ?! ?7 t \6 y( T$ i强大的切片语法也可以用于一次删除多个列表元素。
. j# R0 C5 ` K9 I! }" M. B/ l' U# @7 Y4 f
9 c/ _% T# `- e5 U
5. 将文件行读入到数组
) z/ v* ?0 A9 ]如果条件或循环语句比较简单的话,可以利用列表达式去简化代码:
6 D2 F$ ]% c) ], _) P
# r9 ~7 v9 M2 P( `; H
5 @/ c( x: P( pc = [line.strip() for line in open('file.txt')]& ^6 c5 p% p( |: g( _7 B# W
6. 将字符串写入文件5 \ Q' B a' |3 h+ q. d
对比于其他编程语言常用的open、close去读写文件,Python提供的with方法更加简单,而且不用特意去关闭文件:' o. T# j1 d' x& T
- I' K( Q$ a( V. F: g! i; w! ~
. i. ^1 z# X, x0 _: x0 Fwith open('file.txt', 'a') as f: f.write('hello world')
+ d* F' |3 S% H5 }0 o& ]4 n0 ^( H7. 创建清单6 |: J1 E, m! }) p! [& ^* i
可以使用内联for循环从其他列表中动态创建列表。您可以直接修改值,例如,下面示例中的字符串连接:! y |# v' ] h1 y
" p# I: r( d9 ~1 n( U
0 v$ N( _% x: z8 Ml = [('Hi ' + x) for x in ['Alice', 'Bob', 'Pete']]
, z2 \0 c+ ^. H) Q! a# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']9 w0 s7 I- ^( y0 \4 ?2 M
8. 列表映射
6 j- t+ {. S% X3 q可以使用Python的 map()函数将每个列表元素转换为另一种类型:
4 ?% @& d+ F+ e$ c$ b9 |4 B* N3 \: p$ I. Y, \
. ^$ H2 g+ I k- p
l = list(map(int, ['1', '2', '3']))( W$ m9 H ]" _" U
# print(l) >> [1, 2, 3]
* s8 A% W0 h* R! d7 y6 Z. Z9. 集合创建
. [" |, ?7 Q! Y列表达式除了使用简单的for循环语句,还可以结合条件语句一起使用:
& f* Z& J$ M! U( E
7 g' @3 G1 Z3 p! ?! S6 e: Y
8 i. b+ d) h9 M- n) C$ H& `squares = { x**2for x in range(6) if x < 4 }
" Y) |2 A" M/ |# t. t% H# print(squares) >> {0, 1, 4, 9}; X4 L: ]" V# e
10. 回文检查' B' P# t2 H: [! S5 b: I* \4 p
回文检查是笔试题经常会出现的一类问题,简单来说,它就是向前和向后都读取相同的字符,这也难倒了不少应届毕业生,利用Python,一行代码就可以完成:6 ?7 |9 H6 [. }- a' @5 V6 N
% q" V: c: s2 M% r, s) m3 _& R8 }
# phrase = 'deleveled'* S6 c/ ?" k/ }
isPalindrome = phrase == phrase[::-1]" x7 t! _( l- O. r7 D: o
# print(isPalindrome) >> true4 O. E- e" [/ R1 U
结语( o' Q6 N% W0 V0 W, r
进阶Python过程中,会涉及的编程技巧远不止于此,要想深入并精通Python,需要我们持续学习,并且不断的总结。
! a# y. e# ]- |3 Z% Q/ n
: m6 t7 ?' P7 _6 v G
3 x9 o) _7 S4 b7 k! b. }提升编码技能最简单有效的方法可以总结两点:“多看别人代码,多让别人看自己的代码”。
9 h; y y4 D8 }- V; T1 D& W3 e: C0 ]6 [3 R3 ^
- ?) c) p/ P" Y/ o
不同人的思路,实现方法不尽相同,看别人代码过程中,可以看到与众不同的编码方式,可以从中汲取一些优点。6 s1 O0 C" N1 Z! H
- r% l$ J. u! V; n$ J# \
3 [2 J0 n: c9 \- X* `) X! o8 K" ^0 D多让别人review自己的代码,能够不断的鞭策、激励自己改掉编码过程中的不好习惯,错误用法。
9 j7 ? v: @7 U3 d9 R! g% x
. E. n2 b: a+ a T, w @7 q- s+ R2 J( B# t1 s4 D0 j& d9 z7 h4 l
干货推荐; U* h1 ]/ ]5 }. n( w% `6 j+ F
为了方便大家,我花费了半个月的时间把这几年来收集的各种技术干货整理到一起,其中内容包括但不限于Python、机器学习、深度学习、计算机视觉、推荐系统、Linux、工程化、Java,内容多达5T+,我把各个资源下载链接整理到一个文档内,目录如下:
( e6 e5 N$ V4 t8 }
) u v5 b% ]/ h; G8 R5 @! {' J( J* }( |+ k2 T
4 e1 s0 M( H; v% B5 Q5 |% _
6 T! b5 @; Y4 p2 k
- q7 t$ M* }9 @4 ^+ p) a+ ~+ c' H% _3 Y9 J% a/ k4 T
所有干货送给大家,希望能够点赞支持一下!# G- t! j& W. B0 j; p& a
9 M) C/ [ u, p
& M: ]+ ^- o6 m& ]* i) C3 Khttp://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA (提取码:0000)
3 L1 D' @: f4 s. Y) v————————————————
# r2 i8 e8 b. r; z8 |; b版权声明:本文为CSDN博主「七步编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
) U+ T5 s4 [' X' e, n) I+ q原文链接:https://blog.csdn.net/jakpopc/article/details/118530788
* {/ Q6 `. B3 ] E9 y
; X1 D! q# y4 m6 Q0 ?) _4 n8 J4 @: w" h, U" R! ]1 H' W4 r! d
|
zan
|