摘要:
import heapq lst = list("AbSZDYM6BTXHU") print(lst) # ['A', 'b', 'S', 'Z', 'D', 'Y', 'M', '6', 'B', 'T', 'X', 'H', 'U'] heapq.heapify(lst) print(lst)
閱讀全文
posted @ 2023-06-25 12:05
sangern
閱讀(33)
推薦(0)
摘要:
python默認的都是小根堆,實現數字的大根堆,可在堆化前把數字 乘以 -1 ,輸出時 再 乘以 -1 變回原值。 比如: [5, 20, 6],堆化前用列表推導式把列表轉為: [-5, -20, -6] import heapq import random data = list(range(1,
閱讀全文
posted @ 2023-06-25 11:58
sangern
閱讀(431)
推薦(0)
摘要:
跨平臺交互用json(老版本跨平臺交互XML)。json里面的字符串用雙引號,不能用單引號json把信息序列化(字典轉字符串,或者字符串轉字典)dump(),load(),dumps(),和loads() 存檔用pickle,不能跨平臺交互(python特有類型)dump(),load(),dump
閱讀全文
posted @ 2023-06-25 11:20
sangern
閱讀(23)
推薦(0)
摘要:
random.sample()和random.choices()、random.choice()區別 返回列表(1-k個值)random.sample(data,3)random.sample(data, k=3)data可以是字符串 元組 list從一個數據源中隨機獲取k個數據 不重復取 (取過的
閱讀全文
posted @ 2023-06-24 21:10
sangern
閱讀(436)
推薦(0)
摘要:
堆排序的核心是什么?借助堆數據結構,不斷輸出當前堆頂元素(小根堆),每次堆頂離開當前堆后,對剩余元素重新調整成堆,直到堆中只剩下一個元素;元素的輸出序列可轉換成元素的有序序列。 堆排序的步驟:1. 當一個節點被插入時,將該節點放在堆的末尾(這是為了保證堆是完全二叉樹);2. 然后將該節點與它的父節點
閱讀全文
posted @ 2023-06-23 23:47
sangern
閱讀(106)
推薦(0)
摘要:
rotate()右循環移位列表中的元素rotate()函數接受一個參數k,表示將列表中的元素右移k個單位。如果k為正,元素將向右移動。如果k為負數,元素將向左移動。在旋轉過程中,元素的順序不會改變,但是它們的位置會更改。例如列表a=[1,2,3, 4,5],調用a. rotate(2)的結果將是[4
閱讀全文
posted @ 2023-06-23 23:38
sangern
閱讀(71)
推薦(0)
摘要:
堆可視化操作演示:https://visualgo.net/zh/heap 堆實際上是一棵完全二叉樹,其任何一非葉節點滿足性質:小根堆:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2] 或者 大根堆 Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一
閱讀全文
posted @ 2023-06-22 21:52
sangern
閱讀(349)
推薦(0)
摘要:
try: from _heapq import * except ImportError: pass # When n>=size, it's faster to use sorted() try: size = len(iterable) except (TypeError, AttributeE
閱讀全文
posted @ 2023-06-22 21:04
sangern
閱讀(16)
推薦(0)
摘要:
匹配手機號 1.由1開頭的數字 ^12.第二位數字一般是3,4,5,7,8中的一個數字 [34578]3.接下來9位都是0到9的數字 \d{9}4.為了嚴謹,結尾加上$,表示:是以9個數字結束 ^1[34578]\d{9}$在字符串中匹配多個: 1[34578]\d{9} QQ號匹配: ^[1-9]
閱讀全文
posted @ 2023-06-21 17:11
sangern
閱讀(176)
推薦(0)
摘要:
JSON是一種使用文本存儲數據對象的格式。換句話說,它是一種數據結構,將對象用文本形式表示出來。在JSON流行之前,XML一直是以文本格式表示數據對象的常見選擇。JSON代碼量比XML更少。這是JSON如此流行的主要原因之一。 JSON數據看起來像一個Python字典。像字典一樣,JSON以鍵值對的
閱讀全文
posted @ 2023-06-21 15:50
sangern
閱讀(23)
推薦(0)
摘要:
類型標注的意義是標注一個變量的數據類型,此后的代碼都應當遵守對這個變量的類型標注,這就要求我們,不能隨意的修改變量的數據類型。 為變量做類型標注 n: int 為函數做標注類型為函數做標注類型,需要對每一個形參做類型標注,同時還要對函數的返回值做類型標注 def twoSum(num1: int,
閱讀全文
posted @ 2023-06-21 10:47
sangern
閱讀(17)
推薦(0)
摘要:
for i in range(20): print(f" 0.1 * {i} = {0.1 * i}") 0.1 * 0 = 0.0 0.1 * 1 = 0.1 0.1 * 2 = 0.2 0.1 * 3 = 0.30000000000000004 0.1 * 4 = 0.4 0.1 * 5 = 0
閱讀全文
posted @ 2023-06-21 10:06
sangern
閱讀(113)
推薦(0)
摘要:
import glob # path = r"E:\Python\code\*.txt" # * 匹配0個或多個字符 匹配后綴名 .txt 的文件 # path = r"E:\Python\code\z?.*" # ? 匹配 z1.py z9.py ze.py z3.num.sort.py z9.t
閱讀全文
posted @ 2023-06-20 15:59
sangern
閱讀(84)
推薦(0)
摘要:
import fileinput with fileinput.input('a.txt') as f: # , backup=".bak", inplace=1 backup inplace 同時有參數才會備份 print("*****訪問一個文件 'a.txt'****") for line i
閱讀全文
posted @ 2023-06-20 15:15
sangern
閱讀(13)
推薦(0)
摘要:
fileinput模塊可以對一個或多個文件中的內容進行迭代、遍歷等操作,的open函數是對一個文件進行讀寫操作;fileinput.input()函數生成一個迭代器,遇到大文件的讀取時不會占用太大的內存;fileinput對文件進行循環遍歷,格式化輸出,查找、替換等操作,還能獲取每一行的行號等等 d
閱讀全文
posted @ 2023-06-20 11:24
sangern
閱讀(19)
推薦(0)
摘要:
def input(files=None, inplace=False, backup="", bufsize=0, mode="r", openhook=None): """Return an instance of the FileInput class, which can be iterat
閱讀全文
posted @ 2023-06-20 11:01
sangern
閱讀(27)
推薦(0)
摘要:
可迭代對象,有__iter__方法迭代器(iterator)實現__next__方法和__iter__方法,每次按順序返回一個值 直接使用for循環打印range(1,3) for i in range(1,3): print('這是通過for循環打印出來的i值:'+str(i)) 使用分解代碼模擬
閱讀全文
posted @ 2023-06-19 17:02
sangern
閱讀(63)
推薦(0)
摘要:
迭代器表示的是一個元素流,可以被next()函數調用并不斷返回下一個元素,直到沒有元素時拋出StopIteration錯誤。 可以把這個元素流看做是一個有序序列,但卻不能提前知道序列的長度,只能不斷通過next()函數得到下一個元素,所以迭代器節省內存和空間。 凡是可作用于for循環的對象都是可迭代
閱讀全文
posted @ 2023-06-19 16:51
sangern
閱讀(35)
推薦(0)
摘要:
globals、locals、vars、dir的區別
閱讀全文
posted @ 2023-06-19 16:27
sangern
閱讀(47)
推薦(0)
摘要:
Pycharm中print函數有end= 參數,控制臺不打印輸出 for i in range(1, 256): # 尋找對稱平方數 square = str(i*i) # 轉為字符串 if square == square[::-1]: print(i, end='\t') 循環中 print函數
閱讀全文
posted @ 2023-06-19 12:17
sangern
閱讀(358)
推薦(0)
摘要:
元字符元字符 描述. 查找單個字符,除了換行和行結束符\w 查找單詞字符\W 查找非單詞字符\d 查找數字\D 查找非數字字符\s 查找空白字符\S 查找非空白字符\b 匹配單詞邊界\B 匹配非單詞邊界\0 查找 NUL字符\n 查找換行符\f 查找換頁符\r 查找回車符\t 查找制表符\v 查找垂
閱讀全文
posted @ 2023-06-19 11:18
sangern
閱讀(40)
推薦(0)
摘要:
\b 代表單詞字符的邊界,它本身不匹配任何字符。 舉個例子 this is an island. 如果你使用 is 去字符串中匹配,正則表達式同時會匹配前面的 “ is ” 也會匹配后面 “<is>land” 中的 is。 但如果加入了 \bis\b 只有前面的 is 才會被匹配。因為 is 的前后
閱讀全文
posted @ 2023-06-17 20:16
sangern
閱讀(146)
推薦(0)
摘要:
\1代表之后一個字符,一定需要是括號中已經匹配的字符"a"。 (a)\1\1 表示匹配 aaa https://github.com/ziishaned/learn-regex/tree/master/translations
閱讀全文
posted @ 2023-06-17 19:59
sangern
閱讀(319)
推薦(0)
posted @ 2023-06-17 19:50
sangern
閱讀(19)
推薦(0)
摘要:
方法 seek() 將文件的當前位置設置為偏移量 如果文件是使用a或a+打開的進行附加寫入,任何 seek() 操作將在下一次寫入時被撤銷。 如果文件僅以附加模式使用a打開進行寫入, seek() 方法基本上是無操作;但對于啟用讀取的附加模式打開的文件(模式a+),它仍然是有用的。
閱讀全文
posted @ 2023-06-15 23:53
sangern
閱讀(24)
推薦(0)
摘要:
a = 'abcxd' print(reversed(a)) # <reversed object at 0x000000000356F048> print(list(reversed(a))) # ['d', 'x', 'c', 'b', 'a'] print(sorted(a)) # ['a',
閱讀全文
posted @ 2023-06-14 10:08
sangern
閱讀(38)
推薦(0)
摘要:
type(None) <class 'NoneType'> NoneType數據類型只有一個值:None (或者成為 常量) None是Python中的一個特殊對象,表示空值或者不存在。在Python中,None可以在函數中作為占位符使用,表示該參數暫時沒有值。在函數中,如果一個參數不接受賦值,則可
閱讀全文
posted @ 2023-06-13 15:49
sangern
閱讀(730)
推薦(0)
摘要:
變量前單星號表示將參數轉化成元組 變量前雙星號表示將參數轉化成字典 函數傳參順序 從左到右(一般):位置參數、默認參數、單星號參數、關鍵字傳參、雙星號參數 傳參解壓功能 單星號對list或元組進行解壓,輸入的參數不是一個list或元組,而是其中的元素。 雙星號對字典進行解壓,輸入的參數變成 " a=
閱讀全文
posted @ 2023-06-11 10:35
sangern
閱讀(69)
推薦(0)
摘要:
eval(input())在接收輸入數字作為變量時非常好用 N = eval(input('請輸入一個數字:')) print(N) # 78 print(type(N)) # <class 'int'>
閱讀全文
posted @ 2023-06-11 00:20
sangern
閱讀(70)
推薦(0)
摘要:
socket的英文原義是“孔”或“插座”在計算機領域,socket有多個意思。在硬件上,理解為插座上沒錯的,比如CPU的插座Socket 370, Socket 462, Socket AM3,這個大家都很容易理解,木有異議。讓人很費解的是這貨出現在軟件領域(廣義)時,就硬生生改名套接字了。套接字屎
閱讀全文
posted @ 2023-06-10 12:50
sangern
閱讀(133)
推薦(0)