马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
在学习Python的过程中,总会发现Python能够轻易的解决许多问题。一些复杂的任务,甚至可以使用一行Python代码就能搞定。下面,小F给大家介绍50个有趣的Python一行代码,都很实用。希望大家能从中找到对自己有帮助的技巧。
/ l2 h' r$ g- Z: z+ d' Z▍1、字母异位词# D5 [5 ~( \" s, p4 U2 O
8 @ U" y5 l2 V, K- I& I4 E' x两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。
% h/ \: I, A$ ]; O" P' u* M F例如,“silent”和“listen”是字母易位词,而“apple”和“aplee”不是易位词。' l$ p/ F8 {6 {
- from collections import Counter
, s7 {! U7 |6 \/ h! } -
) k( n7 {! I. G- n2 ^4 r0 a6 b - s1 = 'below'4 s7 M5 {6 x6 ]- `
- s2 = 'elbow'( |( L6 f( r: S/ B" q7 H
- / |8 s/ h! `8 M
- print('anagram') if Counter(s1) == Counter(s2) else print('not an anagram')
复制代码 使用一行Python代码,就能判断出来了。
# Q. x4 G! P0 v& T- E, {
: F" W' g% v3 D; d▍2、二进制转十进制
) s) z! I% X, h4 h/ J/ q1 z. W5 e" j6 J' p, u
- decimal = int('1010', 2)) a& R1 t4 I$ o+ h' b
- print(decimal) #10
复制代码
& B* {7 y0 U, s" |: _▍3、将字符串转换为小写. K. c9 O Q" K3 T7 l7 Z: q- h
- k3 O! i% g' f' O" `- print("Hi my name is XiaoF".lower())4 |4 ~- u2 J# T" X
- # 'hi my name is xiaof'
5 S: T& q- b( p; X, b# Z -
5 k& L: {1 r4 u# V: K2 a3 n1 ~) K - print("Hi my name is XiaoF".casefold())
' b0 ? O$ ~+ d! b( k - # 'hi my name is xiaof'
复制代码
3 _6 h( f2 n0 U2 e8 J▍4、将字符串转换为大写
0 }. f" k8 ^) R
8 e6 J+ ^# Y0 ^0 c, G* g- print("hi my name is XiaoF".upper())( }1 _) C* N" w5 J
- # 'HI MY NAME IS XIAOF'
复制代码
4 s8 ~. [* S# V$ A& V" H$ X2 v▍5、将字符串转换为字节
) `8 Z. w, c) q0 J7 C. V
9 R8 f7 B; B! _! b- q6 {" y& L- ~- print("convert string to bytes using encode method".encode())# i5 c' F7 V2 Z* J4 p: D& Z
- # b'convert string to bytes using encode method'
复制代码 + O/ p" G) H: z7 ?
▍6、拷贝文件
; W' i2 Y4 R5 p D
B6 ]- s. U. o/ w d- import shutil
2 {7 E6 _" H, X# M -
) c: c- G5 I. ]! w - shutil.copyfile('source.txt', 'dest.txt')
复制代码 , M; }4 U( U2 q- k7 c8 r( o
▍7、快速排序9 C; }. m' ^6 B; `( u' X
( I0 }) H5 L) ]# z# L) G$ W- qsort = lambda l: l if len(l) <= 1 else qsort([x for x in l[1:] if x < l[0]]) + [l[0]] + qsort([x for x in l[1:] if x >= l[0]])
0 H k' R S- z: y: D( x -
9 ?% R4 C2 F6 b- z% F. i6 n+ D - print(qsort([17, 29, 11, 97, 103, 5]))
; K5 @4 j. r1 N) S6 }6 v) m - # [5, 11, 17, 29, 97, 103]
复制代码 # u/ C) Q8 @. t8 r
▍8、n个连续数的和& S& w- _( L- n
" B! S/ e1 `% v) s
- n = 10
2 i5 j" H+ g: U- X# S$ A( z8 L( W -
6 _' r5 v& z/ I& P. n3 b+ T - print(sum(range(0, n+1)))
! r( `" `5 V2 ^, w3 H) X- E; V5 V6 G! \ - # 55
复制代码 ; W. L5 `) b( t9 J: F: R
▍9、交换两个变量的值
% D$ G9 i& Y' ~3 k4 y) i
0 U! L8 j3 \1 I3 o1 F& Q9 I& A' B- \0 g
▍10、斐波纳契数列
( e+ u. T0 P; N" Q# G: U2 {, Q& r0 B" \# R
- fib = lambda x: x if x<=1 else fib(x-1) + fib(x-2)
7 A. t r/ B1 A, k -
( f: _3 j. K% i! e( W - print(fib(20))
' X1 F* b D; L0 v - # 6765
复制代码
5 ^5 O4 r5 c7 ?4 Y2 V▍11、将嵌套列表合并为一个列表
9 O$ G: v# B$ Q# l3 K) k# B5 q1 Y" [1 o5 y8 |/ A, M
- main_list = [[0, 1, 2], [11, 12, 13], [52, 53, 54]], M- a' \# D4 c
-
' ~/ M3 I8 ]- Z7 T - result = [item for sublist in main_list for item in sublist]
) x; H5 ^7 m5 g ]8 D - print(result)" N6 O, t2 p7 e" `6 y
- 8 ^, [1 y# X8 m
- >% s& q5 {6 I' V* F
- [0, 1, 2, 11, 12, 13, 52, 53, 54]
复制代码 ! [" c3 j1 ?7 P% y+ d3 l
▍12、运行一个HTTP服务器# p. }" R' z x! Q% r/ i/ E
/ M+ m. c; D0 e
- python3 -m http.server 8000/ U3 t) B5 _" }( v8 S6 X
- python2 -m SimpleHTTPServer
复制代码
: y( h& c6 }! g# E▍13、反转列表! n0 X, s0 q7 \3 m7 h
6 T4 N: u6 {$ k: ~
- numbers = [0, 1, 2, 11, 12, 13, 52, 53, 54]6 G+ {& Q$ u2 c+ d# {
- + H/ ]* W6 ^ `
- print(numbers[::-1])
/ ^3 G! Q- C" C0 r/ `( w( ]/ y+ m. ^* M* U - # [54, 53, 52, 13, 12, 11, 2, 1, 0]
复制代码
' l; ]8 }: V8 }/ v1 o▍14、阶乘% Z8 y8 C. @" x8 c3 i% q2 {
/ Y7 ` I, j, j4 ]7 M0 x
- import math
- E6 x# B5 U/ x- N" A6 X, I -
% e; a4 ?+ N$ h; E# W2 d' k* e. z - fact_5 = math.factorial(5)0 F# {. ^6 }7 d9 u
- print(fact_5), Z% \# ^: |* d' ?9 F/ i1 h$ ^4 H
- # 120
复制代码
6 H' G' B. C8 d n▍15、在列表推导式中使用for和if! i. M& N1 n8 z- w }" J5 k& L
2 Z0 O6 F, f9 u, ]* }8 M( c3 k: ]
- even_list = [number for number in [1, 2, 3, 4] if number % 2 == 0]
% V6 _5 S0 q* v+ I6 z5 y9 u( [ - 0 C( k H4 |' e: X% E" p' g
- print(even_list)7 `2 e3 m8 ?, _5 @: E& w, S* Q
- # [2, 4]
复制代码 2 [8 k% s! l. B; S0 H) J6 h" h0 d
▍16、列表中最长的字符串
}0 J$ `* G2 V" m; Z+ a: r
; ^0 s( Z$ ~+ n- words = ['This', 'is', 'a', 'list', 'of', 'words']0 {6 u$ y% \+ @
-
4 I) Q% G: V* ]6 a5 f3 n - result = max(words, key=len)9 h$ j* d4 Y( [3 @) \, W+ [! }
- print(result)
$ l2 M; n. G9 g! W& Y" G- N8 p - # 'words'
复制代码 3 ^5 \2 A) k* {7 N8 h7 i- K
▍17、列表推导式8 x6 V2 |" ^# Y# X6 H5 t: m8 P" C8 T
# |, x( x0 {. Q: Z: r- li = [num for num in range(0, 10)]
2 b+ R! Z2 F6 W# l2 ]- L. `+ s - 7 S+ v9 F4 g1 g# P
- print(li) Q+ P$ H) X1 E& N4 T& E
- # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码 * o# { l% e7 n- {
▍18、集合推导式
" Z5 L' G- b4 Z; U# F1 S: E
; e6 F/ L) S s4 E$ @9 V' E- num_set = {num for num in range(0, 10)}0 L4 t( y; {- Q" Y$ O$ Z
-
T3 Z" a5 G* X% z - print(num_set)) `5 r" I) J: b, _
- # {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
复制代码 ! [: o" T- R" G/ R$ D! L
▍19、字典推导式
: m5 e, [$ {5 T j$ G
/ A3 Q- [0 W: [/ q) S- dict_numbers = {x: x*x for x in range(1, 5)}
5 h6 N, r. @3 ?4 m) t -
' G* u& f& H; V8 k8 h6 D" @( _0 Y - print(dict_numbers)
/ q- ~+ g/ s( A0 ^ - # {1: 1, 2: 4, 3: 9, 4: 16}
复制代码 7 }1 U5 J' O+ k* D! x# S
▍20、if-else+ n% c4 z8 \# X! r8 {5 t
0 {" {2 T- i# [) X1 F' o8 C
- print("even") if 4 % 2==0 else print("odd")
复制代码
2 |. F) x7 @$ Q▍21、无限循环1 Z% W' T& B( ^* }
6 @5 b }$ g# u$ ?- h! z' G& f* [! ^* R
▍22、检查数据类型$ d5 B4 e7 |6 \0 m' L4 I E- {- N
6 G z/ y8 z! B
- print(isinstance(2, int))" J. d# v7 E8 N
- # True a6 z! W+ e/ g& i) T6 c3 B1 d
- 6 p* C( [; u |! D# y8 j X
- print(isinstance("allwin", str))
3 O: f7 d% S- B: D! e; C( t5 a - # True" p. |6 [ P; O
- 7 f0 Y. c3 x) a+ O; n% G
- print(isinstance([3, 4, 1997], list)) p- `4 m" ]. L& n9 f
- # True
复制代码 4 F1 j, d, w; `" k
▍23、While循环
3 |- ^* ~9 U! N/ \# W( c8 }* W1 M) E1 p( z" j
- a = 59 u. v6 V9 m9 g. U
- ! g. D: d0 k' W$ n, C' H/ z+ H2 G
- while a > 0:3 D2 Y. w; _0 v C; @ E6 B
- a = a - 1) T* e( x' z' k( i# O) q& h- ?) e
- 8 P- R* M% ?: Q5 x# _
- print(a)- _! T+ _6 s& \* x
- # 0
复制代码 2 Y7 ?$ l# g( K: ~7 C# b
▍24、使用print语句写入文件6 f7 u' D" _6 H. {& U, u0 r( \
1 r! m( g; I, ~8 ?) j# G6 u. H
- print("Hello, World!", file=open('file.txt', 'w'))
4 q# `" g# t/ M# z/ {- j - 既可打印出信息,还能将信息保存文件。
复制代码 * e3 w) J& r! { q# h- L
9 t, u7 L- e4 h X7 }" N! G1 q
▍25、计算一个字符在字符串中出现的频率% u/ C# C) Q8 `, K7 E
" V9 _ O9 T( ?% Y! t
- print("umbrella".count('l'))* J7 v/ l" U. o' ^" F) _1 P! \4 X
- # 2
复制代码 2 O% W R1 z }
▍26、合并列表
* T9 m, b; n b2 x |
; u S0 E8 a8 L' s2 ^- list1 = [1, 2, 4]6 s$ o9 R. Y0 p# E7 P5 d# h7 g, c
- list2 = ['XiaoF']
. _, G: @2 o) ]* ^# f. t* }) \ - list1.extend(list2)1 f( a2 f0 E7 I* W; J# N
- : T, `2 |! L) t* H1 n
- print(list1)! J. ~. Q! R/ z( C" z
- # [1, 2, 4, 'XiaoF']
复制代码 ; Y( {* _# b, T7 O% f
▍27、合并字典
. w; U @( h ~ _
4 H+ S' ^' c- S- dict1 = {'name': 'weiwei', 'age': 23}
+ I$ w, b# C7 H# O/ f& @% y9 y - dict2 = {'city': 'Beijing'}' g q5 M: g, A( Y! s* h
- dict1.update(dict2); K1 f+ P5 c) Q
- 3 O* Y+ f: v2 u5 ~5 N/ {1 E* i) z
- print(dict1)
6 O; t( r8 v8 i3 Y0 J - # {'name': 'weiwei', 'age': 23, 'city': 'Beijing'}
复制代码
" b, A6 j2 p3 J M! j- O9 F# p8 U▍28、合并集合5 C( X1 O! ~0 ?/ A" Q
: v0 I r2 @/ R
- set1 = {0, 1, 2}' Q, @& z3 X* z5 {# s. i% P
- set2 = {11, 12, 13}! o l' y5 W) K5 `" A. b
- set1.update(set2)5 n( W& F% X2 `) `5 t0 i/ S8 W
-
3 U% r2 S' j$ K/ k0 B7 e - print(set1) |% o9 P" m1 }
- # {0, 1, 2, 11, 12, 13}
复制代码 , _+ U% L \, R9 d
▍29、时间戳
0 U6 T8 \" D7 T1 \; A7 ~; _5 X1 Y. |4 J( y
- import time2 z" L! w! E4 q7 M/ h6 {. V( A
-
& z: _2 R! p$ O$ o! Y i. m - print(time.time())
复制代码 4 V5 X3 b4 Y, `+ k5 V/ R
▍30、列表中出现次数最多的元素
" y" i: q$ Z3 C2 e3 |! V! h \6 H9 Q: N
- test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4]$ `5 D# z$ q: F7 O. m/ I2 x
- most_frequent_element = max(set(test_list), key=test_list.count)! v; b' ?# |% `3 R: z0 D
- 0 P5 e% }7 h8 M R
- print(most_frequent_element)
) d6 J9 e" t6 `$ p) ^ - # 4
复制代码
& w* K/ x/ a$ c9 E/ i8 k! x' v& N▍31、嵌套列表" I% ~' B% Z6 B1 n! |! P
8 l* c) E/ t' I7 b, b
- numbers = [[num] for num in range(10)]
4 m& T% V: b. o -
/ Z8 D I8 s) D5 E$ z% T. d. j - print(numbers)
% D0 I3 \, Y1 A* t2 x - # [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]
复制代码
! N! ^* M- Q/ _9 V. s5 E' q▍32、八进制转十进制2 N, o" `9 P$ R: W L& L, v. f
6 v; {( f# U- v8 c/ N/ V+ y
- print(int('30', 8)) - }( m8 U$ w7 ?9 e
- # 24
复制代码 # l/ A) j' ]. h) x8 p
▍33、将键值对转换为字典9 P% X9 U7 K- ^; I
3 O" K) |" m5 i0 m& U/ p
- result = dict(name='XiaoF', age=23)& T4 [9 N8 v, p# {- ]; a8 @+ S4 O5 w% S
-
3 |4 @" ~" M, E' h. e6 i( { - print(result): w6 X9 t8 {! U
- # {'name': 'XiaoF', 'age': 23}
复制代码
2 T- ~# c% x/ h( L: `" l- F▍34、求商和余数
( m, U. ]) U1 Q6 ^
/ h! F9 M( G) E* C- quotient, remainder = divmod(4, 5)5 F) b& r U0 {
-
5 z2 M. r6 w' d - print(quotient, remainder)9 x0 P; G( \, \% R/ T: E
- # 0 4
复制代码
& h) w5 @8 ?: ~0 Zdivmod()函数返回当参数1除以参数2时,包含商和余数的元组。% O6 F+ ` U. x- q
5 z2 P) }. `' _1 b& ~7 C▍35、删除列表中的重复项
" n- ~. t, @6 y- ]: L1 }' E! q8 b
- print(list(set([4, 4, 5, 5, 6])))1 _& | H3 N! ^' D7 f% G) G6 w: \" k4 m
- # [4, 5, 6]
复制代码
0 h' c( J6 T. J- v▍36、按升序排序列表
$ @, ^- J; Q) C+ d/ |! w9 U. s4 ?: x' m) \
- print(sorted([5, 2, 9, 1]))
5 n' F l6 p. J/ _ O' W - # [1, 2, 5, 9]
复制代码 ! m+ b% J! b6 O3 }
▍37、按降序排序列表
1 M, m( v( J' Y* u* p+ c6 p1 ?! a {* d% {+ g+ c* e
- print(sorted([5, 2, 9, 1], reverse=True))
4 g4 z3 I; `1 a& a - # [9, 5, 2, 1]
复制代码
" F. r' B. a! S% R$ l9 D▍38、获取小写字母表
+ ?; t. v: W1 b
_' F- w. h6 t5 C9 }8 i- import string
3 g0 |# n$ M2 T( R -
7 g( y, ~- f, \: p - print(string.ascii_lowercase)* |5 w! U- h7 r' l4 N! f
- # abcdefghijklmnopqrstuvwxyz
复制代码
7 U; O# `$ K4 \: ^# o! I( @8 s▍39、获取大写字母表
5 P; w& q) K) h; S) ~2 l4 E- u& a" v7 ]2 {5 N4 u% k
- import string2 o: o5 ~$ x5 `2 u2 }9 N- T( {
-
0 m5 I3 A8 u9 a8 n! d6 [. H. { - print(string.ascii_uppercase)
: g! z" P# r4 d' y - # ABCDEFGHIJKLMNOPQRSTUVWXYZ
复制代码
# z) H% c' J% t3 h$ e- ^▍40、获取0到9字符串
S6 l: Q0 A( [/ q5 g' L% W
$ }" h0 l7 P' N) v- import string
: d+ X+ E) E, R8 C3 v* S# ]3 S - 2 Q6 G1 L9 `: Y: q! |
- print(string.digits)4 K+ E2 P4 a; H2 X; W
- # 0123456789
复制代码 - _& G4 p0 }) U2 Y! W
▍41、十六进制转十进制4 E- w+ V$ D9 r5 R
, Y! a$ d4 x( p; ^* d" l8 k- print(int('da9', 16))
% v) r, g; P5 c6 m5 M- C, H - # 3497
复制代码 8 @: c# H8 ?1 ?7 [% [( {" \
▍42、日期时间
" K, Q; A1 U- ?, h
+ k8 t3 Y5 R$ k) I( e2 B/ `+ V- import time. a! i, A' A: o8 y5 k% |' {" Z
- ' _9 R- m+ ] r8 H9 y
- print(time.ctime())0 e$ }' G) W! E) V/ Z& l( l0 N9 ^
- # Thu Aug 13 20:00:00 2021
复制代码
% b- R# q d8 |- L▍43、将列表中的字符串转换为整数) M! ?$ }6 \7 ?3 \1 E9 \
* \/ D1 B8 T7 \2 v( @, p7 p- print(list(map(int, ['1', '2', '3'])))2 m. T( R8 x+ T9 d* a
- # [1, 2, 3]
复制代码
( S2 R. s! R% o ^▍44、用键对字典进行排序
1 r/ X) t3 H$ t& z
% y( E5 _: g9 I q- V- d = {'one': 1, 'four': 4, 'eight': 8}
" q' C. G4 e7 i+ r+ U - result = {key: d[key] for key in sorted(d.keys())}/ w+ Z6 T. W& J; I
- # j. g1 L6 W. Q' a) |
- print(result); s2 H6 y* ^" Y& j1 T$ C; V9 B% }
- # {'eight': 8, 'four': 4, 'one': 1}
复制代码 ; F5 ], |6 a% |2 v, u" m8 q8 M
▍45、用键值对字典进行排序
* T! M9 r$ [2 Z3 v5 { r7 n# \+ F3 s" N! I) l
- x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}( x( ~ _) H# R5 f7 E2 _8 D2 i
- result = {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}
9 l" z0 P" W% v - 9 P. c0 R. T$ ^- H! t
- print(result)
/ {7 L2 ^& F- Z1 d - # {0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
复制代码 6 x/ i6 X. j" J
▍46、列表旋转
: x W; k1 J- `* n8 | J- V/ r
! \) ?- R5 u k- L. V( _8 o- li = [1, 2, 3, 4, 5]5 M; s: b3 s! Z1 Y/ B
-
* L5 m/ T. j/ X7 s3 J) w* @ - # li[n:] + li[:n], 右变左
# Z/ P" i& J" \& Y - print(li[2:] + li[:2]): S& V9 s3 h1 a3 }1 H! d
- # [3, 4, 5, 1, 2]1 B; h% F: ^( L- j" l7 [
- # r5 G, ~% E4 v7 X; M+ \/ `
- # li[-n:] + li[:-n], 左变右
3 ?0 Z2 S* l$ b# F - print(li[-1:] + li[:-1])) ?. R: H1 C" ^0 S/ m* y. |4 c
- # [5, 1, 2, 3, 4]
复制代码 1 M9 Q6 t; J6 U I5 M
▍47、将字符串中的数字移除
- j$ K2 N; `" k; k
3 A6 o( F {( Y* H0 z! a" `- message = ''.join(list(filter(lambda x: x.isalpha(), 'abc123def4fg56vcg2')))
# l$ } ~5 e7 Z2 |/ q& o - * J7 `& J& C* J
- print(message)
. l- g2 u0 V* b' |7 \' R3 X ?, w# s - # abcdeffgvcg
复制代码 3 `7 }& m' R' L2 x& e8 @: G
▍48、矩阵变换
9 ^% \ u2 C3 x6 k2 ~ @9 H- l% ~9 M! S/ I* R' V% P; H! A; W; o
- old_list = [[1, 2, 3], [3, 4, 6], [5, 6, 7]]
5 ^" r/ A& F: z - result = list(list(x) for x in zip(*old_list))
5 |9 U$ B8 X4 t- E -
; K# D' }1 B' ^9 M1 L - print(result)
& {4 {* o3 Q- N( R5 P- v - # [[1, 3, 5], [2, 4, 6], [3, 6, 7]]
复制代码 % H7 t4 w" S# l/ ^
▍49、列表过滤8 w y3 s- f# O
1 ?/ p( W7 ^& T6 m8 t9 ^9 ]! G! ?2 P5 R
- result = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6])), k5 W0 ? O) o' [8 a' Q
- # E6 d' k1 v. [8 g' @; n9 G; R# q
- print(result)9 S' e; U( B* f
- # [2, 4, 6]
复制代码 4 Z2 @. L0 X# l5 Y3 F6 |) R2 s) M; D
▍50、解包, C& ]' F3 m) [- g6 Y( A& T; [
3 g( \3 P5 j( C1 A6 W- a, *b, c = [1, 2, 3, 4, 5]
: `( A, h$ R* b' D -
* Y6 g% n/ g+ R - print(a) # 1
2 }+ \" w" v8 u& m& T e% C* h - print(b) # [2, 3, 4]
* Z" y" u+ ~, C0 p! K3 e& k - print(c) # 5
复制代码 |