python小技巧,或者:deffun(


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] 

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)

 

 

 

 

家是爱的港湾,责备、焦虑、攀比、翻旧账…无论对于家中零星的个体还是小家这个整体,都毫无意义,最后留下的也大都是沉默。格局小的人,在家里会为了鸡零狗碎的小事斤斤计较,格局大的人,懂得小事不争,错事不怨,把家经营得和睦温馨。中国家庭的悲剧,多数都源自于遇事爱责备的相处模式,家庭里有欢声笑语,也有剪不断理还乱的纠纷,没有谁能置身事外。能包容,就少去责备,能接纳,就别强求改变。家乃是社会之缩影。我们怎么经营一个家,就怎么经营一生。

 


 

评论关闭