亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python解壓可迭代對象賦值給多個變量的示例分析

發布時間:2021-12-04 18:56:26 來源:億速云 閱讀:165 作者:柒染 欄目:開發技術

今天就跟大家聊聊有關Python解壓可迭代對象賦值給多個變量的示例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

問題描述

現在有一個包含N個元素的可迭代對象,怎樣把它里面的元素解壓后同時賦值給N個變量?怎樣同時賦值給M個變量(M<N)?

解決方案

1.將N個元素賦值給N個變量,可以通過如下一個簡單的賦值語句實現。

p = [4, 5]
x, y = p
print(x, y)
# 輸出結果:4 5
data = ['Test', 1, 3.14, (2021, 12, 1)]
a, b, c, d = data
print(a, b, c, d)
# 輸出結果:Test 1 3.14 (2021, 12, 1)
a, b, c, (year, month, day) = data
print(a, b, c, year, month, day)
# 輸出結果:Test 1 3.14 2021 12 1

2.如何將N個元素賦值給M個變量(M<N)?

當變量的個數少于可迭代對象元素的個數時,程序會拋出ValueError。這時,可以用Python的星號表達式來解決。

data = [1, 2, 3, 4, 5]
a, b, *c, d = data
print(a, b, c, d)
# 輸出結果:1 2 [3, 4] 5

需要注意的是上面解壓出的c變量永遠是list類型,不管c的元素有幾個(包括0個)。

總結

迭代解壓語法的幾個應用場景:

1.任何可迭代對象都可以實現這種解壓賦值,包括列表、元組、字符串、文件對象、迭代器和生成器。

比如:

s = 'hello'
a, b, c, d, e = s
print(a, b, c, d, e)

# 輸出結果:h e l l o

2.有時候,你想解壓一些元素后丟棄它們,可以使用一個普通的廢棄名稱,比如_或者ign(ignore)。

record = ('ACME', 50, 123.45, (12, 18, 2012))
name, *_, (*_, year) = record
print(name, year)

"""
輸出結果:
ACME 2012
"""

3.迭代元素為可變長元組的序列:

records = [
	('foo', 1, 2),
	('bar', 'hello'),
	('foo', 3, 4),
]

def print_foo(x, y):
	print('foo', x, y)

def print_bar(s):
	print('bar', s)

for tag, *args in records:
	if tag == 'foo':
		print_foo(*args)
	elif tag == 'bar':
		print_bar(*args)

"""
輸出結果:
foo 1 2
bar hello
foo 3 4
"""

4.字符串的分割

line = 'nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false'
uname, *field, homedir, sh = line.split(':')
print(uname, homedir, sh)

"""
輸出結果:
nobody /var/empty /usr/bin/false
"""

看完上述內容,你們對Python解壓可迭代對象賦值給多個變量的示例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

治县。| 汾西县| 昆明市| 砀山县| 家居| 揭西县| 临猗县| 海丰县| 河北区| 淮阳县| 丽江市| 清苑县| 大余县| 丘北县| 龙陵县| 田阳县| 乐业县| 罗山县| 阜阳市| 龙井市| 仁化县| 黄梅县| 奉化市| 舒兰市| 区。| 奉节县| 阿拉善左旗| 锡林郭勒盟| 内丘县| 平凉市| 重庆市| 汉川市| 都兰县| 齐齐哈尔市| 巨鹿县| 兴国县| 潞西市| 湘西| 武平县| 汝南县| 桂平市|