- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564821 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174669
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
8 `2 i8 k3 h3 U
8 |# c4 [2 _. B% t. x9 G) X一行Python代码到底有多强大?4 t: t. G" Q+ a8 {
Python是一门非常简洁而优美的编程语言,在其他编程语言中需要繁琐的代码逻辑才能完成的事情,往往在Python中一行就可以解决。- v0 g6 M$ U1 ^7 a* r- l- G
: O3 _! e8 r/ Z; S, C
- x: V; Y5 C7 J/ r$ ~! ]
这样,它不仅可以减少开发工作量,还能够大大提升可读性,避免在开发复杂逻辑过程中造成的失误。7 [4 f0 N8 O0 u1 {6 x* _
' m% M; s9 D* T
. s+ W, O. f# f8 L& d# O
本文,就来给大家介绍10个一行代码到底有多强大!
: Y6 z, q0 d$ X9 _
% y5 E$ Y+ X9 u; i5 _. I# j/ y0 P) g5 Y- |6 c
1. 交换变量
/ f# r+ f9 y7 y, R( w) m2 j如果大学学过C/C++编程课的同学,对于交换变量一定不会陌生,这是最基础,也是非常常用的。
; T+ x0 D: \9 W) b# K- q2 l2 e; h( W4 c! Q% U. a1 P
) t- g/ g; ?6 Q' `1 N
如果用C/C++实现交换变量,需要这样的操作:
! c) m! P( a f' h- a" n; ^ ]0 I& Y1 }9 t
- t' D, S+ L3 G& E( n2 z" uint a, b, c;
' b$ [$ R8 k! ]9 i) hc = a;* _- r/ ?0 a( G- R0 D
a = b;) e) D. c3 B( q1 d" M
b = c;7 U q- [( u \, o' r. C9 j
而在Python中,一行代码就可以完成变量的交换。
, j% l) i& ~/ z$ ]0 w. O$ p" [; W/ N3 o6 ~2 |
8 ]3 g3 ?9 K2 a# a = 1; b = 2
D5 G: u1 J* j j" L: T. {a, b = b, a
1 P" m8 Z) P# Q7 C# print(a,b) >> 2 1
7 k) O8 N& S( j+ }4 S* K这样,我们就不需要去额外定义一个临时变量,不仅简单,而且非常直观。6 D: l9 O) x7 n k
8 W0 z w2 N s6 u1 O% w$ F+ J
( \ a* F2 ~# W: \8 f$ s2. 多变量分配
# H) k, c! Z4 w7 A8 `如果你在分配变量时同时包含多种类型的变量,这在很多编程语言中是无法实现的,但是在Python中一行代码就可以实现:% p! u1 I: n: m6 L6 Q! V* P$ y
# L$ J: u& X3 ]0 T4 G
' o3 H5 m4 i/ a; e1 ma, b, *c = [1,2,3,4,5]
! D( K, z7 m/ E- F9 ?0 n# print(a,b,c) >> 1 2 [3, 4, 5]
5 U; T3 [7 Q* H2 F在Python中,可以通过符号*把列表元素分配给指定的变量,这也叫unpacking。4 [1 L2 ]6 N2 Y/ {' r) e: ~( Q5 h
/ m9 i+ i* O9 l1 O2 Y0 o, a1 `. U: h( C" t) G1 }( x
3. 每隔一个元素求和/ K) h2 V1 w: J7 }
如果有这么一个列表[1,2,3,4,5,6],你想每隔一个元素进行求和[2, 4, 6],可以这样使用:0 p0 n% ^5 O& s8 n g* Y9 {) m2 Q
9 q$ `, A4 T, t0 [* F; h
8 s9 O' g1 F9 F
# a = [1,2,3,4,5,6]
8 ]# x _4 q! v9 ?s = sum(a[1::2])
! o5 F1 Z4 i$ d# print(s) >> 12* u- E G' Z" R t, g
这里,不需要利用复杂的逻辑,只需要合理利用Python切片就可以实现,[1::]标识,从第2个元素直到列表结束。) n2 t- |1 s+ `( q
; {$ d3 d9 Y! M' ?
* V, [8 ]3 `2 ?, J+ N* P/ F7 s
4. 删除多个元素' C* K3 g# K j- V$ d* f2 i Y0 F4 g- Y
# a = [1,2,3,4,5]! b6 ^- x- l8 m @2 c
del a[::2]- r6 W! o% F1 i, Y# \4 J2 u
# print(a) >> [2, 4]9 a0 ^" L4 Q/ Z/ c4 h W; X
强大的切片语法也可以用于一次删除多个列表元素。
9 a% @+ l' `( N# H( u) \( c' S; L; V# M+ }
1 W- `8 m5 `* n* D
5. 将文件行读入到数组
( c3 M$ O0 A- u; F如果条件或循环语句比较简单的话,可以利用列表达式去简化代码:! w1 v1 E; W) J: m6 u, g
. l7 ^6 \& s+ J
4 ?# p6 M0 }/ Z0 s/ E$ b) R' f3 ic = [line.strip() for line in open('file.txt')]
' K' B4 d1 a) t5 E( m6. 将字符串写入文件
3 w* K6 [. f9 k( |) U& ]对比于其他编程语言常用的open、close去读写文件,Python提供的with方法更加简单,而且不用特意去关闭文件:* D+ e+ [3 e; J w
: H9 B z- k0 R* s
6 |! \6 `- \# ^* [4 Pwith open('file.txt', 'a') as f: f.write('hello world')+ s: `! r9 A/ \1 H1 L: @
7. 创建清单5 |* j+ K* X1 L- q# v' ?+ q2 o
可以使用内联for循环从其他列表中动态创建列表。您可以直接修改值,例如,下面示例中的字符串连接:* w7 c4 o/ k$ ?6 {. o0 o
~. `0 \: e3 d% \
0 k9 e; I2 @4 nl = [('Hi ' + x) for x in ['Alice', 'Bob', 'Pete']]% S/ V) n& D+ j' n0 j
# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']+ ^( [9 q1 Y6 F" }, _ X% `
8. 列表映射! N7 Z- A1 P1 F
可以使用Python的 map()函数将每个列表元素转换为另一种类型:& g; M" F! v; v$ V
G# \" g& L+ w, e* n, Q
0 z% D0 N/ A5 a9 ?8 n& K; b/ yl = list(map(int, ['1', '2', '3']))+ o" v4 Q1 m1 M* I& L
# print(l) >> [1, 2, 3]
( S# d A5 b8 U5 V) [9. 集合创建
$ Y0 \/ _; ?/ Q; P/ D" m) H3 C3 L列表达式除了使用简单的for循环语句,还可以结合条件语句一起使用:
0 Q4 z% ]/ `$ _ R2 Z: o7 M+ G( Q, P# g( @& Q! h
" ]3 Z% W( Y% o) m7 Jsquares = { x**2for x in range(6) if x < 4 }9 k' V6 v8 L2 r
# print(squares) >> {0, 1, 4, 9}
5 W+ L' B+ v8 Z5 Q4 `! x: H10. 回文检查
* _/ l4 x3 y8 D' A) O b回文检查是笔试题经常会出现的一类问题,简单来说,它就是向前和向后都读取相同的字符,这也难倒了不少应届毕业生,利用Python,一行代码就可以完成:1 ~- [6 j9 I/ m" |
/ T/ `- l$ Y! C! D3 X1 c ^9 w' B
6 @6 S! T2 f1 h0 q' l; K9 j# phrase = 'deleveled'
1 v9 J! A0 ^4 _8 pisPalindrome = phrase == phrase[::-1]3 H' q. f# l% q2 x5 w) K$ b
# print(isPalindrome) >> true
& w6 t. L" N% _/ j9 v0 O% P结语
: ]: \# t6 a5 w0 y进阶Python过程中,会涉及的编程技巧远不止于此,要想深入并精通Python,需要我们持续学习,并且不断的总结。
i/ o/ |9 Q0 l; C g# F. _: Q4 X* k2 C6 e
6 h' o! T1 e6 S/ _" @7 C
提升编码技能最简单有效的方法可以总结两点:“多看别人代码,多让别人看自己的代码”。- n( s- V" r" ` ^5 ?* ~
d4 c$ ^8 `7 U9 |0 c
) T6 w* _% u: C. A8 [- H不同人的思路,实现方法不尽相同,看别人代码过程中,可以看到与众不同的编码方式,可以从中汲取一些优点。* z' q# h) O6 }( I9 ?5 x) c
F4 M- \+ A' s8 p" Q
* f3 V% b" Y1 S, W( t+ B2 g多让别人review自己的代码,能够不断的鞭策、激励自己改掉编码过程中的不好习惯,错误用法。
. u$ b# ? d$ K# y$ C3 Y/ C; h2 a! j* d' c& H% v
; G+ i2 V8 H$ S5 u( h
干货推荐- T+ y$ t% S7 i
为了方便大家,我花费了半个月的时间把这几年来收集的各种技术干货整理到一起,其中内容包括但不限于Python、机器学习、深度学习、计算机视觉、推荐系统、Linux、工程化、Java,内容多达5T+,我把各个资源下载链接整理到一个文档内,目录如下:5 U4 d- m! ^/ n! n7 Y! t- V0 K8 W. ]
% u( m. t1 `2 r- _' _# \, G% _
4 a9 G6 N- V- o* O
, L* V2 D" g0 u% v0 N: M. c; ^4 w( Q$ i; B
- ?8 E( N W2 e, S2 t9 H7 f1 G& a
; i3 ]6 R- e# w5 h所有干货送给大家,希望能够点赞支持一下!
8 T: }+ }6 O ~* z ?% ~ c/ @- D4 {
. b4 |6 b6 u( E5 j( q" n9 h0 K' }" U1 C4 r; P/ E/ n
http://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA (提取码:0000)
/ q, }$ Y3 h4 X' Z; ?/ \ L————————————————1 X2 F0 ^* L; E
版权声明:本文为CSDN博主「七步编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
& W) L. e2 T6 S2 v9 l& x原文链接:https://blog.csdn.net/jakpopc/article/details/118530788
, _2 _4 m9 |: t1 k$ A' D( n. Z. N- o! k# K% [
+ e& c5 S+ F/ E/ t2 Z4 Y& P |
zan
|