- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565630 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174912
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
" ]! a N5 Q8 M5 X# d9 l* H! @+ l4 F4 N/ h: d; @, A& Q. u
一行Python代码到底有多强大?: Q- Q8 C7 e$ k$ ~
Python是一门非常简洁而优美的编程语言,在其他编程语言中需要繁琐的代码逻辑才能完成的事情,往往在Python中一行就可以解决。
. [, z* I8 Z- N1 b" K3 U
y' J* s3 E/ A; u- |; B8 q' L9 Z1 x: ^: a o( Y4 a/ Q
这样,它不仅可以减少开发工作量,还能够大大提升可读性,避免在开发复杂逻辑过程中造成的失误。) N/ r. f c9 ?3 v7 ^, s
) R5 Y' A7 A$ c- D0 v, J
) Z4 v4 R/ m# u' |1 N9 {0 _本文,就来给大家介绍10个一行代码到底有多强大!
1 s9 ?! r9 \9 N H( l- o, s: P8 h6 z- l1 j7 p
5 A6 P8 T }9 o9 ]3 e: Q$ G1. 交换变量
7 a4 F5 P% ~; t8 Y如果大学学过C/C++编程课的同学,对于交换变量一定不会陌生,这是最基础,也是非常常用的。
3 p% T+ Q! ^' u9 y% r
a; O: \8 L$ m0 @7 F9 a; a$ Y# N( M- p* r
如果用C/C++实现交换变量,需要这样的操作:
% W1 D8 a/ a. U
0 t. b; T6 n* H' d, b% T* C7 Z# O0 H+ v2 Z
int a, b, c;8 v. o/ S* J% Z( A% ~
c = a;9 O' N* [3 }( m: A+ g% i- E
a = b;
8 v& m0 r1 p6 F! D' d5 B0 bb = c;1 t% |: O! }0 g
而在Python中,一行代码就可以完成变量的交换。 n W: {# Q; o7 F; i
3 l- t5 g) Z! s; G$ j' ]
" X3 }0 E4 ~$ \- M
# a = 1; b = 2, `% V4 c; K$ d
a, b = b, a
. B( e# ~) E3 t% F8 m# print(a,b) >> 2 1' `; O7 t' X8 @& O9 m$ B' e: ?0 H
这样,我们就不需要去额外定义一个临时变量,不仅简单,而且非常直观。
' s! C% F7 ?. ]
3 b. r8 I( f/ z* f* o+ ^7 G
5 W2 B; F- `- |1 R1 C9 U2. 多变量分配% u: ?- O* l0 z; v
如果你在分配变量时同时包含多种类型的变量,这在很多编程语言中是无法实现的,但是在Python中一行代码就可以实现:
" u! P- I- g5 m$ F7 Q# x8 W# Q9 p5 C4 G# C0 o! W# [; {
6 W9 B. C0 w& {4 t
a, b, *c = [1,2,3,4,5]/ u4 b) \9 d: d: l1 w6 n4 y# p; C
# print(a,b,c) >> 1 2 [3, 4, 5]& k2 _' x' C9 z
在Python中,可以通过符号*把列表元素分配给指定的变量,这也叫unpacking。. D* J6 r# }3 t2 g) f- x# Z3 c
# ^- d! e$ n& P, h; r
( o! ?7 v" z' w1 a; D' U$ m3 h/ O0 `3. 每隔一个元素求和
0 z" q4 c* N$ g( k! A如果有这么一个列表[1,2,3,4,5,6],你想每隔一个元素进行求和[2, 4, 6],可以这样使用:2 d: _0 T7 z- c
+ |+ K& H H; a% I6 O) e1 B' q" D) k
5 p E0 P4 S5 k) \" G6 e% X7 G# a = [1,2,3,4,5,6]
# D! k$ E2 O" b6 p* s! `s = sum(a[1::2])
0 e4 N; ?2 b1 T' H7 B. z# print(s) >> 12
( F$ P9 e/ {6 U/ J" O' B& L+ F这里,不需要利用复杂的逻辑,只需要合理利用Python切片就可以实现,[1::]标识,从第2个元素直到列表结束。' \) a1 |7 {/ r; v& [* ^
+ t, p0 O K- @7 ]/ l; A& A
, A$ Z) x4 P! J0 ?5 B
4. 删除多个元素( I1 _+ r7 s( M2 m
# a = [1,2,3,4,5]1 i8 I) T3 l! C- n+ F" h; T
del a[::2]3 a" l4 ^" n4 @# V, I: i
# print(a) >> [2, 4]
4 r. ]2 p6 B( ^, v* k/ g( R强大的切片语法也可以用于一次删除多个列表元素。
& s% S* @ r! ^* m/ O" z
) F3 C4 N1 U8 F2 V3 v+ k8 Q
9 P# H' p9 B8 Q8 Y" c) Q5 N1 f5. 将文件行读入到数组$ U" w" a e: Q4 f/ I/ U
如果条件或循环语句比较简单的话,可以利用列表达式去简化代码:
) k8 J4 L7 E9 d/ R2 _" S& Q0 c" T" B4 g7 N
3 n. \2 z/ h' R# T9 E4 ~: A( Vc = [line.strip() for line in open('file.txt')]1 ^0 C) v% k" i0 O
6. 将字符串写入文件* Z( I* e0 Q. ]6 w% w' x
对比于其他编程语言常用的open、close去读写文件,Python提供的with方法更加简单,而且不用特意去关闭文件:
, g6 R0 R. u6 u# ]# ~0 r& l# |# z7 J
# S0 r o# K1 a6 n% e+ E) G+ lwith open('file.txt', 'a') as f: f.write('hello world')
: U+ s* o' u9 F, H7. 创建清单" }3 H! C/ q# w- @) p- |8 b8 K
可以使用内联for循环从其他列表中动态创建列表。您可以直接修改值,例如,下面示例中的字符串连接:( k1 i" Y# w6 g7 i5 O
7 x0 E# Q; c+ v4 E6 W1 e# R
" C& |2 o) K1 A2 m" a' Vl = [('Hi ' + x) for x in ['Alice', 'Bob', 'Pete']]% L& v" D% V9 b
# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']% u% [& g, t" T* V$ n5 s% @
8. 列表映射2 M! U3 g+ s- W, |: r% v' y5 ]
可以使用Python的 map()函数将每个列表元素转换为另一种类型:
O. v8 H; m o0 d. \' P/ P, b
9 S3 i" G( i- \4 `( I( R( `: A9 O
' D3 a3 z3 c3 Y% ]l = list(map(int, ['1', '2', '3']))! N$ L" K- d0 F1 G- Y2 \
# print(l) >> [1, 2, 3]
9 ]* x- i3 W* j3 x6 [+ T# d* H9. 集合创建7 J3 X4 o0 i: v$ x# }
列表达式除了使用简单的for循环语句,还可以结合条件语句一起使用:1 C! o9 g5 Z |6 r
# f8 y9 P( h! t5 }3 N
: y: e9 C; j- h" E ysquares = { x**2for x in range(6) if x < 4 }. B$ }6 o2 a6 W2 C. K3 F% d4 C5 Y9 p
# print(squares) >> {0, 1, 4, 9}8 c0 v+ \. N: N# C/ l
10. 回文检查
) X2 K, f& P7 C* U6 @" `3 ]回文检查是笔试题经常会出现的一类问题,简单来说,它就是向前和向后都读取相同的字符,这也难倒了不少应届毕业生,利用Python,一行代码就可以完成:" j9 \* A/ ~' o- V" b# U( T1 ]
7 E4 h6 j0 p1 y9 [: [ P; Q
8 N F. ]& H" o, R4 T# phrase = 'deleveled'( @7 J$ B$ _% f. @, \5 i" D2 Y
isPalindrome = phrase == phrase[::-1]
2 ~+ G/ W7 j6 i6 m. E5 }! u9 r+ N3 }# print(isPalindrome) >> true
3 ]9 @$ F( t% E& D; r! w0 Q结语
. Q" ~) b3 [* p' p+ b进阶Python过程中,会涉及的编程技巧远不止于此,要想深入并精通Python,需要我们持续学习,并且不断的总结。
$ r; S3 L' J( `9 z
! u8 V+ w& w3 \$ L' A! q( G+ a
提升编码技能最简单有效的方法可以总结两点:“多看别人代码,多让别人看自己的代码”。
- a: d( O* }, ?
7 b# U5 H' W; R- u/ Q6 b
: v" U. G, [& C. M! M5 b不同人的思路,实现方法不尽相同,看别人代码过程中,可以看到与众不同的编码方式,可以从中汲取一些优点。
# c& u- ?/ a3 z* _3 y- t0 R* s F9 z$ m1 `' y% Q
( Y# B& ]- z1 \2 p, E多让别人review自己的代码,能够不断的鞭策、激励自己改掉编码过程中的不好习惯,错误用法。 V3 P$ _8 ~/ W h2 p4 v
$ ?4 s( V, ]5 Z `7 e
9 w0 A% Y C+ L& z
干货推荐! w: z+ j2 x9 Z, d7 D. T, k
为了方便大家,我花费了半个月的时间把这几年来收集的各种技术干货整理到一起,其中内容包括但不限于Python、机器学习、深度学习、计算机视觉、推荐系统、Linux、工程化、Java,内容多达5T+,我把各个资源下载链接整理到一个文档内,目录如下:. p; t* j& F% X2 ?) \( t% {/ G/ t
4 z, a, b! P" |6 q
s- ]+ M) L, W, w& {5 h
; t" q6 k* E' M! n r) X5 R2 w# d: Z, H8 U& ~' L
# Y& q( b7 V z8 r# g) c
! \: S9 _& ~3 a
所有干货送给大家,希望能够点赞支持一下!+ L3 N* N! C2 x# I$ x5 v8 m3 l
4 b* ~' Y, o8 ~5 B7 |, V2 U& }" {9 T
http://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA (提取码:0000)
1 ^3 h2 U; A9 P+ G" Q1 f————————————————
* `# S- [7 v" f; z6 P版权声明:本文为CSDN博主「七步编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
% l$ T n3 n! z M k- l原文链接:https://blog.csdn.net/jakpopc/article/details/1185307883 R$ u7 L9 h) e8 A6 f% T
9 H4 q( o8 E2 S% s) M% I8 ^
/ Y" R k# u/ A5 Q9 l
|
zan
|