把序列中的N個元素賦值給多個變數

2022-06-18 09:42:08 字數 1519 閱讀 9932

序列:可通過偏移量來進行切片的物件。列表、元組、字串都屬於序列。

雜湊:無法通過偏移量來進行切片的物件。比如 集合、字典

>>> 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 ...