在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 558770 点 威望 12 点 阅读权限 255 积分 173004 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 18 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
5 q% ]7 C- N& N B( e, Y
# K- A! A: r5 t# A 一行Python代码到底有多强大? ) j! [* l+ }/ i8 c8 i( J
Python是一门非常简洁而优美的编程语言,在其他编程语言中需要繁琐的代码逻辑才能完成的事情,往往在Python中一行就可以解决。 3 m* X7 D2 F9 o6 ^
6 ]5 U! R: T) b, o3 c' S$ m- n; d
/ k7 X' d# t' _- f
这样,它不仅可以减少开发工作量,还能够大大提升可读性,避免在开发复杂逻辑过程中造成的失误。 , c% E9 i8 h) R! a
) Z j5 ^4 C7 r8 ~- [+ J
d- T4 A3 w- w6 i: h% ~ 本文,就来给大家介绍10个一行代码到底有多强大! 8 S, a8 B6 ^) A6 Q+ ]0 z
0 e" [' q1 f3 X6 [" `- n
: O! Y" D$ H6 S5 p' _; {2 b( A: j 1. 交换变量 & ?: A; ?8 [! ?$ A
如果大学学过C/C++编程课的同学,对于交换变量一定不会陌生,这是最基础,也是非常常用的。
5 _ ?' j# H$ L6 i 4 Q$ s' L' z: W+ y: L) ~
7 o; \% h$ O( Q! d 如果用C/C++实现交换变量,需要这样的操作: 1 W' }7 B$ Q8 q }6 U0 g& f* |
v4 U" u$ h& y$ m+ f8 g! ^
' u+ g. r4 R5 [. p7 ^ int a, b, c; 7 {" G) T7 y8 ^$ x( V. N9 H+ M
c = a;
" o3 @: J. J) y! q2 _ a = b; / ?9 z* c* o' W r Y
b = c; 5 o1 L. Y" R/ o% I) R5 T3 ^. p
而在Python中,一行代码就可以完成变量的交换。
2 G% Y# y) X* D8 w* a- w ; j. C4 ~9 u/ e
! r4 u1 x( l: l% B' v! E # a = 1; b = 2
5 D% g+ }, i3 Y; F+ t a, b = b, a 8 q# a) `( J+ O
# print(a,b) >> 2 1
5 B& I* K9 ?' r 这样,我们就不需要去额外定义一个临时变量,不仅简单,而且非常直观。
3 j5 Q# _ k4 _$ ]7 G& [
+ [8 y a9 N0 S8 N. n7 J5 ~, ~8 D + e" c. }" _- K% ~6 T
2. 多变量分配 9 v0 `6 S3 ]- b
如果你在分配变量时同时包含多种类型的变量,这在很多编程语言中是无法实现的,但是在Python中一行代码就可以实现: 3 |0 e" ?: ?1 U' M
, T( H, T" z7 ^: S 7 m( Z3 s) S4 U, [/ b
a, b, *c = [1,2,3,4,5] ) ^% m0 Z+ w& J
# print(a,b,c) >> 1 2 [3, 4, 5] + c' c: y, }. n3 H
在Python中,可以通过符号*把列表元素分配给指定的变量,这也叫unpacking。
' t& }( H ? d4 G8 J $ o# y3 v; J+ b0 L0 d0 J
6 u; U. n$ J9 o$ K4 B4 U4 m6 ~ 3. 每隔一个元素求和
9 b {! L0 i8 O! k, \+ n 如果有这么一个列表[1,2,3,4,5,6],你想每隔一个元素进行求和[2, 4, 6],可以这样使用: 1 M" U2 _) g C i% W+ ?
: B9 [8 i* I) n6 ^. R f
9 r" a9 d, R! m* B0 U # a = [1,2,3,4,5,6]
- m/ M* u- r0 @4 H6 { s = sum(a[1::2]) 0 e1 T$ c S% z2 h
# print(s) >> 12
% Q* `6 A5 S" E" u& H8 S X 这里,不需要利用复杂的逻辑,只需要合理利用Python切片就可以实现,[1::]标识,从第2个元素直到列表结束。
?& }2 h* v# t8 I$ k
9 t8 H$ j' O0 p2 n - d1 d5 } V2 j5 J- [/ ~$ V
4. 删除多个元素 . `* M: h/ v; \: C, `
# a = [1,2,3,4,5]
5 Z- G" W8 b; q: { del a[::2] B" N* P1 R- q% n, T
# print(a) >> [2, 4]
, B7 {4 f( Z9 a0 V6 {% ? 强大的切片语法也可以用于一次删除多个列表元素。
2 a9 L; Z' [5 U1 @4 i3 X & O. j% G/ k' N$ h" p. S2 q
j2 o8 Y% q+ M 5. 将文件行读入到数组 2 p- u5 c- o- w1 i, T' t
如果条件或循环语句比较简单的话,可以利用列表达式去简化代码:
+ d/ C. U9 ` t; o0 u1 a . R m7 e* I, Q
6 ]. B4 l" D! S c = [line.strip() for line in open('file.txt')] 4 N+ r7 l& n- r
6. 将字符串写入文件
' f% d' ^% w; U8 [: m! } 对比于其他编程语言常用的open、close去读写文件,Python提供的with方法更加简单,而且不用特意去关闭文件:
5 n1 C4 t+ d2 j
7 L1 q3 R# W, ~8 C! H; c
1 p5 _/ S2 L* P with open('file.txt', 'a') as f: f.write('hello world')
' i7 b/ O% V" J 7. 创建清单
$ k3 a$ X! g: G% d 可以使用内联for循环从其他列表中动态创建列表。您可以直接修改值,例如,下面示例中的字符串连接: & `& R" U5 O. g. \3 B8 S9 q- ~
/ W! z! n `# k8 L2 {
# A2 N. r2 s1 J& f2 _
l = [('Hi ' + x) for x in ['Alice', 'Bob', 'Pete']] ! w1 K) j0 u- k, O$ m# w% s( x
# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']
' G. l" ]$ u, i 8. 列表映射
! S7 x/ {: g' J6 K$ t, X2 T 可以使用Python的 map()函数将每个列表元素转换为另一种类型:
2 T0 d* V* Z9 ^ n& a 5 a* i, v* {' t2 d
! n% E. I5 {2 g$ y6 c l = list(map(int, ['1', '2', '3']))
6 y8 B, B# p3 h6 d: k2 T0 | # print(l) >> [1, 2, 3]
' Q; d. n* B! N& w" q7 q 9. 集合创建 " c, u4 @6 J7 A0 g9 a7 w
列表达式除了使用简单的for循环语句,还可以结合条件语句一起使用:
/ E; G9 ?/ u' Q
, {; h2 F. N3 o( `, V' x, O, A
' L( z- j8 A. I- m0 ^ squares = { x**2for x in range(6) if x < 4 }
* F+ U h, b0 e+ q0 d. ?: m, S& Z # print(squares) >> {0, 1, 4, 9} * o; P( x1 ^, y- m/ s) ]" q3 n
10. 回文检查
' o# [! x' d6 u& X 回文检查是笔试题经常会出现的一类问题,简单来说,它就是向前和向后都读取相同的字符,这也难倒了不少应届毕业生,利用Python,一行代码就可以完成: 9 }' h$ J+ l& m/ d" K4 {
/ `8 B1 b7 K9 I) V% H( P/ `& _, z & r4 j v6 @# L# S+ q, |+ \9 V* Y
# phrase = 'deleveled'
' D; w; u5 o0 {' W+ s4 ] isPalindrome = phrase == phrase[::-1]
: s$ G, B( u* a! @ y1 G # print(isPalindrome) >> true
R) s' G" j$ G, j0 e6 h 结语 + _2 `$ Q, o% Y8 `0 s
进阶Python过程中,会涉及的编程技巧远不止于此,要想深入并精通Python,需要我们持续学习,并且不断的总结。 5 z2 d( H0 U9 s# w% o( {8 F4 I
) m# C! H2 f+ ~/ j+ [ 2 U6 L7 t; O: @1 u- x. H4 a
提升编码技能最简单有效的方法可以总结两点:“多看别人代码,多让别人看自己的代码”。
7 D( l+ ^% X7 u. o! o . x) i7 r% T1 @" C; F# U9 K
. {" B8 ]3 l* Q+ g) g+ X/ b
不同人的思路,实现方法不尽相同,看别人代码过程中,可以看到与众不同的编码方式,可以从中汲取一些优点。 4 z: J9 M$ m" `
0 L! m6 M3 U1 x7 n: C0 ]
( l& T+ s$ Z3 r" C: r& v
多让别人review自己的代码,能够不断的鞭策、激励自己改掉编码过程中的不好习惯,错误用法。
, d+ V; }( A# h " G$ M$ S3 p' l& @1 ?; H6 C6 d
f9 I% a; ~$ y9 v* T- Q2 `
干货推荐
- A9 ]+ K' ]$ `4 b/ i 为了方便大家,我花费了半个月的时间把这几年来收集的各种技术干货整理到一起,其中内容包括但不限于Python、机器学习、深度学习、计算机视觉、推荐系统、Linux、工程化、Java,内容多达5T+,我把各个资源下载链接整理到一个文档内,目录如下:
. [+ G9 l% F# @! t 3 Y2 D/ h5 U+ q/ Q
& r) T, z3 M" t6 q
: Y+ {9 u$ e" K4 H7 X 3 i% Z$ q' J6 i# o# U- t' y3 h
5 T6 E7 {$ `1 U" z" T
5 x5 ^+ Z! y$ l$ Y 所有干货送给大家,希望能够点赞支持一下! 2 g" Z6 |# B+ @ Q: A. e- N& }! D& D
, g8 |- I8 Z- D, c- O' C3 ]8 |' R. C& a
1 S% D- F8 e' V1 I1 t0 K
http://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA (提取码:0000) : d# _ u3 z( @ B' w
———————————————— $ e! M' b( C, B! ?4 U( g2 [! u; i
版权声明:本文为CSDN博主「七步编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 ) C* {8 v. M! Y
原文链接:https://blog.csdn.net/jakpopc/article/details/118530788 # `) K4 d7 F0 I4 g9 y) ]9 q' G$ P
[' R# L9 F0 ]! L9 V6 k3 {
5 m' Y6 Y2 [- d) f* B% y- m
zan