30个极简Python代码,拿走就能用!
30个极简Python代码,拿走就能用!
gh_1d7504e4dee1
回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。
1 重复元素判定
def all_unique(lst):
return len(lst)== len(set(lst))
x = [1,1,2,2,3,2,3,4,5,6]
y = [1,2,3,4,5]
all_unique(x)
# False
all_unique(y)
# True
2 字符元素组成判定
from
collections
import
Counter
def
anagram
(first, second)
:
return
Counter(first) == Counter(second)
anagram(
"abcd3"
,
"3acdb"
)
# True
3 内存占用
import sys
variable = 30
print(sys.getsizeof(variable))
# 24
4 字节占用
def
byte_size
(string)
:
return
(len(string.encode(
’utf-8’
)))
byte_size(
’’
)
# 4
byte_size(
’Hello World’
)
# 11
5 打印 N 次字符串
n = 2
s =
"Programming"
print(s * n)
# ProgrammingProgramming
资源分享
6 大写第一个字母
s =
"programming is awesome"
print(s.title())
# Programming Is Awesome
7 分块
from
math
import
ceil
def
chunk
(lst, size)
:
return
list(
map(
lambda
x: lst[x * size:x * size + size],
list(range(
0
, ceil(len(lst) / size)))))
chunk([
1
,
2
,
3
,
4
,
5
],
2
)
# [[1,2],[3,4],5]
8 压缩
def
compact
(lst)
:
return
list(filter(bool, lst))
compact([
0
,
1
,
False
,
2
,
’’
,
3
,
’a’
,
’s’
,
34
])
# [ 1, 2, 3, ’a’, ’s’, 34 ]
9 解包
array
= [[
’a’
,
’b’
], [
’c’
,
’d’
], [
’e’
,
’f’
]]
transposed = zip(*
array
)
print(transposed)
# [(
’a’
,
’c’
,
’e’
), (
’b’
,
’d’
,
’f’
)]
10 链式对比
a = 3
print
( 2 < a < 8)
# True
print
(1 == a < 2)
# False
11 逗号连接
hobbies = [
"basketball"
,
"football"
,
"swimming"
]
print(
"My hobbies are: "
+
", "
.join(hobbies))
# My hobbies are: basketball, football, swimming
12 元音统计
import
re
def
count_vowels
(str)
:
return
len(len(re.findall(
r’[aeiou]’
, str, re.IGNORECASE)))
count_vowels(
’foobar’
)
# 3
count_vowels(
’gym’
)
# 0
13 首字母小写
def
decapitalize
(string)
:
return
str[:
1
].lower() + str[
1
:]
decapitalize(
’FooBar’
)
# ’fooBar’
decapitalize(
’FooBar’
)
# ’fooBar’
14 展开列表
def
spread
(arg)
:
ret = []
for
i
in
arg:
if
isinstance(i, list):
ret.extend(i)
else
:
ret.append(i)
return
ret
def
deep_flatten
(lst)
:
result = []
result.extend(
spread(list(map(
lambda
x: deep_flatten(x)
if
type(x) == list
else
x, lst))))
return
result
deep_flatten([
1
, [
2
], [[
3
],
4
],
5
])
# [1,2,3,4,5]
15 列表的差
def difference(a, b):
set_a = set(a)
set_b = set(b)
comparison = set_a.difference(set_b)
return list(comparison)
difference([1,2,3], [1,2,4])
# [3]
16 通过函数取差
def
difference_by
(a, b, fn)
:
b = set(map(fn, b))
return
[item
for
item
in
a
if
fn(item)
not
in
b]
from
math
import
floor
difference_by([
2.1
,
1.2
], [
2.3
,
3.4
],floor)
# [1.2]
difference_by([{
’x’
:
2
}, {
’x’
:
1
}], [{
’x’
:
1
}],
lambda
v : v[
’x’
])
# [ { x: 2 } ]
17 链式函数调用
def
add
(a, b)
:
return
a + b
def
subtract
(a, b)
:
return
a - b
a, b =
4
,
5
print((subtract
if
a > b
else
add)(a, b))
# 9
18 检查重复项
def has_duplicates(lst):
return len(lst) != len(set(lst))
x = [1,2,3,4,5,5]
y = [1,2,3,4,5]
has_duplicates(x)
# True
has_duplicates(y)
# False
19 合并两个字典
def
merge_two_dicts
(a, b)
:
c = a.copy()
# make a copy of a
c.update(b)
# modify keys and values of a with the once from b
return
c
a={
’x’
:
1
,
’y’
:
2
}
b={
’y’
:
3
,
’z’
:
4
}
print(merge_two_dicts(a,b))
#{’y’:3,’x’:1,’z’:4}
def
merge_dictionaries
(a, b)
return
{**a, **b}
a = {
’x’
:
1
,
’y’
:
2
}
b = {
’y’
:
3
,
’z’
:
4
}
print(merge_dictionaries(a, b))
# {
’y’
:
3
,
’x’
:
1
,
’z’
:
4
}
20 将两个列表转化为字典
def to_dictionary(
keys
,
values
):
return
dict(zip(
keys
,
values
))
keys
= [
"a"
,
"b"
,
"c"
]
values
= [
2
,
3
,
4
]
print
(to_dictionary(
keys
,
values
))
#{’a’: 2, ’c’: 4, ’b’: 3}
21 使用枚举
list = [
"a"
,
"b"
,
"c"
,
"d"
]
for
index,
element
in
enumerate
(
list
):
print
(
"Value"
, element,
"Index "
, index,
)
# (
’Value’
,
’a’
,
’Index ’
,
0
)
# (
’Value’
,
’b’
,
’Index ’
,
1
)
#(
’Value’
,
’c’
,
’Index ’
,
2
)
# (
’Value’
,
’d’
,
’Index ’
,
3
)
22 执行时间
import time
start_time = time.time()
a = 1
b = 2
c = a + b
print(c)
#3
end_time = time.time()
total_time = end_time - start_time
print("Time: ", total_time)
# (’Time: ’, 1.1205673217773438e-05)
23 Try else
try
:
2
*
3
except
TypeError:
print(
"An exception was raised"
)
else
:
print(
"Thank God, no exceptions were raised."
)
#Thank God, no exceptions were raised.
24 元素频率
def most_frequent(
list
):
return
max(set(
list
), key =
list
.count)
list
= [
1
,
2
,
1
,
2
,
3
,
2
,
1
,
4
,
2
]
most_frequent(
list
)
25 回文序列
def
palindrome
(string)
:
from
re
import
sub
s = sub(
’[W_]’
,
’’
, string.lower())
return
s == s[::
-1
]
palindrome(
’taco cat’
)
# True
26 不使用 if-else 的计算子
import
operator
action = {
"+"
:
operator
.
add
,
"-"
:
operator
.sub,
"/"
:
operator
.truediv,
"*"
:
operator
.mul,
"**"
: pow
}
print(action[
’-’
](
50
,
25
))
# 25
27 Shuffle
from copy import deepcopy
from
random import randint
def
shuffle(lst):
temp_lst
=
deepcopy(lst)
m
=
len(temp_lst)
while
(m):
m
-= 1
i
=
randint(0, m)
temp_lst[m],
temp_lst[i] = temp_lst[i], temp_lst[m]
return
temp_lst
foo
=
[1,2,3]
shuffle(foo)
# [2,3,1] , foo = [1,2,3]
28 展开列表
def
spread
(arg)
:
ret = []
for
i
in
arg:
if
isinstance(i, list):
ret.extend(i)
else
:
ret.append(i)
return
ret
spread([
1
,
2
,
3
,[
4
,
5
,
6
],[
7
],
8
,
9
])
# [1,2,3,4,5,6,7,8,9]
29 交换值
def
swap
(a, b)
:
return
b, a
a, b =
-1
,
14
swap(a, b)
# (14, -1)
spread([
1
,
2
,
3
,[
4
,
5
,
6
],[
7
],
8
,
9
])
# [1,2,3,4,5,6,7,8,9
30 字典默认值
d = {
’a’
: 1,
’b’
: 2}
print
(d.get(
’c’
, 3))
# 3
万水千山总是情,点个 行不行。
-
进大厂2天,公司给我花了5w,网友:驴在感恩主人给了个好磨~
-
Django教程-PHP和Django的区别
-
Django教程-Django和Laravel的区别
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
