python的拆包(掃盲)


什么是拆包

拆包: 對於函數中的多個返回數據, 去掉元組, 列表 或者字典 直接獲取里面數據的過程.

怎么拆包

1) 對列表進行拆包

my_list = [1, 3.14, "hello", True]
num, pi, my_str, my_bool = my_list
# 或者
num, pi, my_str, my_bool = [1, 3.14, "hello", True]

2) 對元組進行拆包

my_tuple = (1, 3.14, "hello", True)
num, pi, my_str, my_bool = my_tuple

3) 對字典進行拆包

my_dict = {"name":"老王", "age": 19}
ret1, ret2 = my_dict
# 得到的是key  字典是無序的
print(ret1, ret2)

結果

name age

4) 用拆包的形式定義變量

# 一次定義多個變量
num1 = 10
num2 = 20
num3 = 30
num4 = 3.14
# # 變量名和值是一一對應
num1, num2, num3, num4 = 10, 20, 30, 3.14

5) 函數返回元組時直接拆包

對元組拆包:

def get_my_info():
    high = 178
    weight = 100
    age = 18
    return high, weight, age

# 這一步叫做拆包: 
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)

結果

178
100
18

也可以對列表或者字典拆包:

def function1():
    return [1, 2, 3]
def function2():
    return {"key1": 1, "key2": 2, "key3": 3}

# 調用函數,獲取里面的數據
num1, num2, num3 = function1()
print(num1, num2, num3)

# 調用函數,獲取里面的數據
ret1, ret2, ret3 = function2()
print(ret1, ret2, ret3)

結果:

1 2 3
key1 key2 key3

注意:

拆包時要注意,需要拆的數據的個數要與變量的個數相同,否則程序會異常

除了對元組拆包之外,還可以對列表、字典等拆包

對字典拆包后獲取的是字典的key值, 而不是value值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM