序列:可通過偏移量來進行切片的物件。列表、元組、字串都屬於序列。
雜湊:無法通過偏移量來進行切片的物件。比如 集合、字典
>>> data = [ 'acme
', 50, 91.1, (2012, 12, 21
) ]>>> name, shares, price, date =data
>>>name
'acme
'>>> date
(2012, 12, 21
)>>> name, shares, price, (year, mon, day) =data
>>>name
'acme
'>>>year
2012
>>>mon
12>>>day
21
>>> s = 'hello
'>>> a, b, c, d, e =s
>>>a'h
'>>>b'e
'>>>e'o
'
其實這種方法可以用在任何可迭代物件上面,包括迭代器和生成器
>>> data = [ 'acme
', 50, 91.1, (2012, 12, 21
) ]>>> _, shares, price, _ =data
>>>shares
50>>>price
91.1
# *在中間和最後時效果一樣>>> first, *middle, last = [1,2,3,4,5
]>>>first
1>>>middle
[2, 3, 4
]>>> last
5# *在前面
*trailing, current = (10, 8, 7, 1, 9, 5, 10, 3
)>>>trailing
[10, 8, 7, 1, 9, 5, 10
]>>>current
3
值得注意的是,*號變數的返回值永遠是列表型別
>>> line = 'nobody:*:-2:-2:unprivileged user:/var/empty:/usr/bin/false
'>>> uname, *fields, homedir, sh = line.split(':'
)>>> uname
'nobody
'>>>homedir
'/var/empty
'>>> sh
'/usr/bin/false
'
>>> record = ('acme
', 50, 123.45, (12, 18, 2012
))>>> name, *_, (*_, year) =record
>>>name
'acme
'>>>year
2012
如何給陣列中的元素賦值
如果把單個變數看成是 遊兵散勇 的話,那麼陣列對應的是 集團 集團的 兵 就是我們前面說的陣列的元素。這些 兵 不再有單獨的名字,而是統一使用編號來區別,這個編號,我們稱為 下標 在和陣列打交道時,我們需要分清 是對整個陣列操作,還是對陣列中的單個元素進行操作。1.在定義陣列時初始化。普通變數可以在...
從 n個長度的序列中找出前 m大個元素
方法一 利用優先佇列的特性 堆序 在構建出 max堆 大頂堆 之後,不斷將堆頂的元素移除,就能很輕鬆的獲取前 m個最大的元素.方法二 對第一種方法的優化,維護乙個含有 m個元素的序列,在對原始數列進行掃瞄,動態調整目標序列,一次掃瞄結束之後,前 m個元素也就找到了.public class sort...
n個元素中取m個元素的組合 排列問題
n個元素中取m個元素的組合 如a則有這些組合 1,2,3,12,13,23,123 我們可以把問題分解如下 1 求陣列中由1到n個元素的組合f n,m m 1 m n n為陣列元素個數 2 對於f n,m 我們從陣列中任意取乙個元素,然後再從剩下的n 1個元素中取m 1個元素,既f n 1,m 1 ...