1、解壓賦值多個變數,運用*號
(1)如:在一列排好順序的成績下,去掉乙個最低分和乙個最高分,對剩下的數,求平均值
def ggg(grede):
frist,*list,end = grede
return list
grede = [23,45,55,78,89,100]
list = ggg(grede)
print("%f\n"%(sum(list)/len(list)))
(2) 星號表示式在迭代元素為可變長元組的序列時是很有用的,如:
records = [
('foo', 1, 2),
('bar', 'hello'),
('foo', 3, 4),
]def do_foo(x, y):
print('foo', x, y)
def do_bar(s):
print('bar', s)
for tag, *args in records:
if tag == 'foo':
do_foo(*args)
elif tag == 'bar':
do_bar(*args)
2、雙端queue
(1)基本用法
下面簡單的介紹一下python中雙端佇列的操作函式;
from collections import deque #首先從collections 模組中匯入deque類
下來我們定義乙個雙端佇列
函式詳情:
雙端佇列中獲取就直接用下表獲取就行了。
**:
from collections import deque
def search(lines, pattern, history=5):
previous_lines = deque(maxlen=history)
for line in lines:
if pattern in line:
yield line, previous_lines
# example use on a file
if __name__ == '__main__':
with open(r'../../cookbook/somefile.txt') as f:
for line, prevlines in search(f, 'python', 5):
for pline in prevlines:
print(pline, end='')
print(line, end='')
print('-' * 20)
理解一下,上面的這段**,其中 yield 是生成器的意思,如不明白的話請檢視
雙端佇列使用時,應注意:deque(maxlen=n)
建構函式會新建乙個固定大小的佇列。當新的元素加入並且這個佇列已滿的時候, 最老的元素會自動被移除掉。
python資料結構
資料結構是一種結構,它們用以把一些資料儲存在一起。在python中有三種內建的資料結構 列表 list 元組 tuple 字典 dictionary 列表由一對方括號括起來,其中的專案之間以逗號分隔。你可以在列表中增加 刪除 查尋專案。示例如下 python using list.py 這兒有 4 ...
python 資料結構
刪除元素 remove,pop,del set是乙個無序的,不重複的元素集合 set中每個元素都是可雜湊的,但是set不是可雜湊的。相對應的frozenset,可hash,可以作為keys存在於dict中 支援 x in set,len set for x in set,不支援slice等序列操作 ...
python 資料結構
變數是只不過保留的記憶體位置用來儲存值。這意味著,當建立乙個變數,那麼它在記憶體中保留一些空間a abc 1.在記憶體中建立了乙個 abc 的字串 2.在記憶體中建立了乙個名為a的變數,並把它指向 abc a abc b a a xyz a abc 直譯器建立了字串 abc 和變數a,並把a指向 a...