好用到哭!请记住这20段Python代码( 二 )


也使用most_common功能来获得列表中的most_frequent element 。
# finding frequency of each element in a listfrom collections import Countermy_list = [ a , a , b , b , b , c , d , d , d , d , d ]count = Counter(my_list) # defining a counter objectprint(count) # Of all elements# Counter({ d : 5, b : 3, a : 2, c : 1})print(count[ b ]) # of individual element# 3print(count.most_common(1)) # most frequent element# [( d , 5)]11. 查找两个字符串是否为anagrams
Counter类的一个有趣应用是查找anagrams 。
anagrams指将不同的词或词语的字母重新排序而构成的新词或新词语 。
如果两个字符串的counter对象相等 , 那它们就是anagrams.
From collections import Counterstr_1, str_2, str_3 = "acbde", "abced", "abcda"cnt_1, cnt_2, cnt_3 = Counter(str_1), Counter(str_2), Counter(str_3)if cnt_1 == cnt_2:print( 1 and 2 anagram )if cnt_1 == cnt_3:print( 1 and 3 anagram )12. 使用try-except-else块
通过使用try/except块 , Python 中的错误处理得以轻松解决 。 在该块添加else语句可能会有用 。 当try块中无异常情况 , 则运行正常 。
如果要运行某些程序 , 使用 finally , 无需考虑异常情况 。
a, b = 1,0try:print(a/b)# exception raised when b is 0except ZeroDivisionError:print("division by zero")else:print("no exceptions raised")finally:print("Run this always")13.使用列举获取索引和值对
以下脚本使用列举来迭代列表中的值及其索引 。
my_list = [ a , b , c , d , e ]for index, value in enumerate(my_list):print( {0}: {1} .format(index, value))# 0: a# 1: b# 2: c# 3: d# 4: e14. 检查对象的内存使用
以下脚本可用来检查对象的内存使用 。
import sysnum = 21print(sys.getsizeof(num))# In Python 2, 24# In Python 3, 2815. 合并两个字典
在Python 2 中 , 使用update方法合并两个字典 , 而Python3.5 使操作过程更简单 。
在给定脚本中 , 两个字典进行合并 。 我们使用了第二个字典中的值 , 以免出现交叉的情况 。
dict_1 = { apple : 9, banana : 6}dict_2 = { banana : 4, orange : 8}combined_dict = {**dict_1, **dict_2}print(combined_dict)# Output# { apple : 9, banana : 4, orange : 8}16. 执行一段代码所需时间
下面的代码使用time 软件库计算执行一段代码所花费的时间 。
import timestart_time = time.time# Code to check followsa, b = 1,2c = a+ b# Code to check endsend_time = time.timetime_taken_in_micro = (end_time- start_time)*(10**6)print(" Time taken in micro_seconds: {0} ms").format(time_taken_in_micro)17. 列表清单扁平化
有时你不确定列表的嵌套深度 , 而且只想全部要素在单个平面列表中 。
可以通过以下方式获得:
from iteration_utilities import deepflatten# if you only have one depth nested_list, use thisdef flatten(l):return [item for sublist in l for item in sublist]l = [[1,2,3],[3]]print(flatten(l))# [1, 2, 3, 3]# if you don t know how deep the list is nestedl = [[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]若有正确格式化的数组 , Numpy扁平化是更佳选择 。
18. 列表取样
通过使用random软件库 , 以下代码从给定的列表中生成了n个随机样本 。