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
posted @ 2023-06-29 17:41  苏春雨1024  阅读(27)  评论(0)    收藏  举报