python小技巧
01将字符串倒转
my_string = "灭毁是还存生"
reversed_string = my_string[::-1]
02将英文单词的首字母大写通过title()方法来实现首字母的大写
my_string = "my name is wei xiang"# 通过title()来实现首字母大写 new_string = my_string.title()
print(new_string)# My Name Wei Xiang
03给字符串去重
my_string = "dddbbeacf"# 通过set()来进行去重 temp_set = set(my_string)# 通过join()来进行连接 new_string = ''.join(temp_set)
print(new_string) # dfbcae
04拆分字符串
string_1 = "My name is kaixin mahua" string_2 = "开心, 麻 1, 花 2"# 默认的分隔符是空格,来进行拆分 print(string_1.split())# ['My', 'name', 'is', 'kaixin', 'mahua'] print(string_2.split(','))# ['开心', '麻 1', '花 2']
05将字典中的字符串连词成串
list_of_strings = ['My', 'name', 'is', 'DongMei', 'DaQiao']# 通过空格和join来连词成句 print(' '.join(list_of_strings))# My name is DongMei DaQiao
06查看列表中各元素出现的个数
from collections import Counter my_list = ['a','a','b','b','b','c','d','d','d','d','d'] count = Counter(my_list) print(count) # Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1}) print(count['b']) # 单独的“b”元素出现的次数# 3 print(count.most_common(1)) # 出现频率最多的元素# [('d', 5)]
07合并两字典
dict_1 = {'apple': 0, 'banana': 3} dict_2 = {'grape': 1, 'orange': 9} # 方法一 combined_dict = {**dict_1, **dict_2}
# 方法二 dict_1.update(dict_2)
# 方法三 print(dict(dict_1.items() | dict_2.items())) # {'apple': 0, 'banana': 3, 'grape': 1, 'orange': 9}
08查看程序运行的时间
import time start_time = time.time() end_time = time.time() time_taken_in_micro = (end_time - start_time) * (10 ** 6) print(time_taken_in_micro)
09列表的扁平化有时候会存在列表当中还嵌套着列表的情况
from iteration_utilities import deepflatten
l = [[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]
print(list(deepflatten(l, depth=3))) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
10查看列表当中是否存在重复值
def unique(l): if len(l)==len(set(l)): print("不存在重复值")
else:
print("存在重复值") unique([t,l,p])# 不存在重复值 unique([l,t,t])# 存在重复值
11数组的转置
array = [['l', '3'], ['t', '2'], ['t', '1']] transposed = zip(*array) print(list(transposed)) # [('l', 't', 't'), ('3', '2', '1')]
12找出两列表当中的不同元素
def difference(a, b): set_a = set(a) set_b = set(b) comparison = set_a.difference(set_b) return list(comparison)# 返回第一个列表的不同的元素 difference([1,2,6], [1,2,5])# [6]
13将两列表变成键值对将两个列表合并成一个键值对的字典
def to_dictionary(keys, values): return dict(zip(keys, values)) keys = ["三", "二", "意"] values = [3, 2, 1] print(to_dictionary(keys, values)) # {'三': 3, '二': 2, '意': 1}
14对字典进行排序根据字典当中的值对字典进行排序
d = {'apple': 9, 'grape': 4, 'banana': 6, 'orange': 8} # 方法一 sorted(d.items(), key = lambda x: x[1]) # 从小到大排序# [('grape', 4), ('banana', 6), ('orange', 8), ('apple', 9)] sorted(d.items(), key = lambda x: x[1], reverse = True) # 从大到小排序# [('apple', 9), ('orange', 8), ('banana', 6), ('grape', 4)] # 方法二 from operator import itemgetter print(sorted(d.items(), key = itemgetter(1))) # [('grape', 4), ('banana', 6), ('orange', 8), ('apple', 9)]
15列表中最大/最小值的索引
1 list1 = [1,2,3,2,1] 2 print(list1.index(max(list1))) #2 3 print(list1.index(min(list1))) #0
16.+=与= +的不同
#案例1 a = [1,2] b = a a = a + [3, 4] # 会生成一个新列表 print(a) #[1,2,3,4] print(b) #[1,2] #案例2 a = [1,2] b = a a += [3, 4] # 相当于extend,列表a后直接添加元素 print(a) #[1,2,3,4] print(b) #[1,2,3,4]
17.给多个变量赋值
list = [3, 1, 9] a, b, c = list # a=3,b=1,c=9 def f(): return 6 0 1 q, w, e = f() # q=6,w=0,e=1
18.获取变量内存占用
import sys value = "helo moto" sys.getsizeof(value)
19.字典集合推导式
values = {i : i*i for i in range(3)} #{0:0, 1:1, 2:4}
20.emoji表情
import emoji emoji.emojize('Python is :thumbs_up:')#返回的一个大拇指表情
21.map+lambda 惊喜组合
x = [1, 2, 3] y = map(lambda x : x ** 2, x) #映射 print(list(y)) # [1, 4, 9]
22.sh调用系统命令,写shell脚本
import sh sh.echo("情系中国结,联通四海心")#返回“情系中国结,联通四海心” sh.which("python") #返回python所在路径
23.优雅赋值,拆包
a, *mid, b = [1, 2, 3, 4, 5, 6] print(a, mid, b) # 1 [2, 3, 4, 5] 6
24.使用下划线忽略变量
L = [1,3,5,7] a, _, b, _ = L print(a,b) # 1 5
25.放置占位符
def fun(): pass #定义一个函数但尚未弄清楚如何实现它时,可以放置。或者: def fun(): ...
26.浅拷贝
a = [1,3] b = a.copy() # 这里还可以用 b = a[:] b[0]=3 print(a,b) #[1,3] [3,3]
27.采用多种方式将字符串格式化
lang = 'python' print(f'{lang} is most popular language in the world') print('I like {}'.format(lang)) print('I like %s'%(lang)) # I like python
28.简单装饰器
def sheng(input): return lambda:"省前 " + input() + " 省后" def shi(input): return lambda:"市前 " + input() + " 市后" @sheng @shi def run(): return "泗阳县" print(run()) # 省前 市前 泗阳县 市后 省后
29.startswith,endswith
print("http://foofish.net".startswith(('http','https'))) # True print("http://foofish.net".endswith(('net','https'))) # True
30.枚举
#初级写法 for i in range(len(players)): print(i, players[i]) #高级写法 for i, player in enumerate(players): print(i, player)
31.特殊符号转换
user_input = "This\nstring has\tsome whitespaces...\r\n" character_map = { ord('\n') : ' ', ord('\t') : ' ', ord('\r') : None } # 也可以使用 s.replace('\n',' ') user_input.translate(character_map) # This string has some whitespaces...
32.字典替代多个if else
def fun(x): if x == 'a': return 1 elif x == 'b': return 2 else: return None #优化写法 def fun(x): return {"a": 1, "b": 2}.get(x)
家是爱的港湾,责备、焦虑、攀比、翻旧账…无论对于家中零星的个体还是小家这个整体,都毫无意义,最后留下的也大都是沉默。格局小的人,在家里会为了鸡零狗碎的小事斤斤计较,格局大的人,懂得小事不争,错事不怨,把家经营得和睦温馨。中国家庭的悲剧,多数都源自于遇事爱责备的相处模式,家庭里有欢声笑语,也有剪不断理还乱的纠纷,没有谁能置身事外。能包容,就少去责备,能接纳,就别强求改变。家乃是社会之缩影。我们怎么经营一个家,就怎么经营一生。