2023-02-26-Python刷题账目表
刷题中常用的Python方法
python的collections.Counter方法
1
nums = [1, 2, 3, 1, 2, 1]
counts = collections.Counter(nums)
print(counts)
## Counter({1: 3, 2: 2, 3: 1})
凭借这个结构,可以计算出某个序列中出现次数最多的某个元素。也即在得到了counts之后求max即可。但这个max需要给依据索引。
print(max(counts)) # 3,这里只是求得最大的键值
print(max(counts.keys(), key=counts.get)) # 1,这里是按照key方法求最大
这里max是两个参数,前一个代表要max的是什么,也就是要返回最大键,后面的key代表要返回的最大的依据是什么,默认是本身,但这里给了key方法,count.get也就是求值,所以该方法就是说返回一个最大键,但这个最大的依据是值。如果某个键值对的值是最大的,那就返回其键。
dic = dict(counts)
print(dic.get(1)) # 4 get在字典中就是传一个键,根据键求对应的值。
前面是一种理解,但max的两个参数也可以理解为key后面的方法是要将前面的第一个参数作为参数,也就是counts.keys()要作为counts.get的参数,然后求max。即get键对应的值,然后返回最大的值对应的键
(感觉python中存在很多这种情况,比如lambda表达式,后面也是传一个func来将前面的参数带入)
“_ name _”
“_ name ”是属于 python 中的内置类属性,就是它会天生就存在与一个 python 程序中,代表对应程序名称。
也分两种情况:
1)当python程序自己执行时, “ name ”变量的值就是: “ name _”
2)当python程序是作为模块被导入时,那么 “_ name _”变量的值就是:程序的文件名,也就是.py前面的文件名称。
排序算法
def insertionSort(intList):#插入排序
n = len(intList)
for i in range(1, n):
#{
# sort intList[0], intList[1], ..., intList[i]
k = i
while (k > 0) and (intList[k-1] > intList[k]):
#{
# swap intList[k] and intList[k-1]
temp = intList[k-1]
intList[k-1] = intList[k]
intList[k] = temp
k = k - 1
#}
#}
def selectionSort(intList):#选择排序
n = len(intList)
for i in range(0, n-1):
#{
# find the minimum item in intList[i .. n-1]
kMin = i
for k in range(i+1, n):
if (intList[k] < intList[kMin]):
kMin = k
# swap intList[i] and intList[kMin]
if (kMin != i):
temp = intList[i]
intList[i] = intList[kMin]
intList[kMin] = temp
#}
def bubbleSort(intList):#冒泡排序
n = len(intList)
for i in range(0, n-1):
#{
for j in range(1, n-i):
#{
# compare adj items, swap if in wrong order
if intList[j-1] > intList[j]:
# swap intList[j-1] and intList[j]
temp = intList[j-1]
intList[j-1] = intList[j]
intList[j] = temp
#}
#}
def bubbleSort(intList):#优化的冒泡算法
n = len(intList)
for i in range(0, n-1):
swapped = False
for j in range(1, n-i):
# compare adj items, swap if in wrong order
if intList[j-1] > intList[j]:
# swap intList[j-1] and intList[j]
temp = intList[j-1]
intList[j-1] = intList[j]
intList[j] = temp
# remember that swap is needed
swapped = True
if not swapped:
# swap is NOT needed, so list is SORTED
break
浙公网安备 33010602011771号