Python--各数据结构解包小例子

简介: Python--各数据结构解包小例子

原文知识库链接:https://www.yuque.com/qinganwubieshi,欢迎关注订阅。

列表解包

a,b,c = [1,2,3]
print(a,b,c)    # 1 2 3

元组解包

a,b,c = (1,2,3)
print(a,b,c)    # 1,2,3

字符串解包

a,b,c = "123"
print(a,b,c)    # 1,2,3

集合解包

a,b,c = {1,2,3}
print(a,b,c)    # 1,2,3

字典解包

a,b,c = {"a":1,"b":2,"c":3}
print(a,b,c)    # a,b,c

生成器解包

a,b,c = (x+1 for x in range(3))
print(a,b,c) # 1,2,3

多元素解包

a, b, *c = [1, 2, 3, 4, 5]
print(a, b, c)  # 1 2 [3, 4, 5]
a, *b, c = [1, 2, 3, 4, 5]
print(a, b, c)  # 1 [2, 3, 4] 5
  • 在某个变量面前加一个星号
  • 而且这个星号可以放在任意变量
  • 每个变量都分配一个元素后,剩下的元素都分配给这个带星号的变量 :::

函数解包

def num(a, b, c):
    print(a, b, c)
num(1, 2, 3)
num(*[4, 5, 6])
num(*(7, 8, 9))
num(*{11, 22, 33})
num(**{"a": 111, "b": 222, "c": 333})
"""
1 2 3
4 5 6
7 8 9
33 11 22
111 222 333
"""

多类型参数解包

def num(a, b, c):
    print(a, b, c)
num(*[4], *(5,), **{"c": 6})
"""
4 6 7
"""

函数元组解包

def name(*args):
    print(args)
    print(*args)
name('清安','拾贰')
"""
('清安', '拾贰')
清安 拾贰
"""

函数字典解包

def name(**kwargs):
    print(kwargs)
    print(*kwargs)
name(name1='清安', name2='拾贰')
"""
{'name1': '清安', 'name2': '拾贰'}
name1 name2
"""

扩充

def name(**kwargs):
    print(kwargs)
    print(kwargs["name1"])
name(**{"name1":'清安',"name2":"拾贰"})
"""
{'name1': '清安', 'name2': '拾贰'}
清安
"""

表达式解包

print(range(3),3)
print(*range(5),5)
print([*range(5)])
print(*[range(5)])
print(*{"a": 111, "b": 222, "c": 333})
print(**{"a": 111, "b": 222, "c": 333})
"""
range(0, 3) 3
0 1 2 3 4 5
[0, 1, 2, 3, 4]
range(0, 5)
a b c
TypeError: 'a' is an invalid keyword argument for print()
"""

解包拼接

列表

list_ = [1,2]
list_1 = range(3,5)
list_2 = [*list_,*list_1]
print(list_2)
"""
[1, 2, 3, 4]
"""

字典

dict1 = {"a": 111, "b": 222, "c": 333}
dict2 = {"d": 444, "e": 555, "f": 666}
dict3 = {**dict1,**dict2}
print(dict3)
"""
{'a': 111, 'b': 222, 'c': 333, 'd': 444, 'e': 555, 'f': 666}
"""

小结

  • 自动解包支持一切可迭代对象
  • 函数调用时,可以用 * 或者 ** 解包可迭代对象
目录
相关文章
|
1月前
|
算法 开发者 计算机视觉
燃爆全场!Python并查集:数据结构界的网红,让你的代码炫酷无比!
在编程的世界里,总有一些数据结构以其独特的魅力和高效的性能脱颖而出,成为众多开发者追捧的“网红”。今天,我们要介绍的这位明星,就是Python中的并查集(Union-Find)——它不仅在解决特定问题上大放异彩,更以其优雅的设计和强大的功能,让你的代码炫酷无比,燃爆全场!
38 0
|
22天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
22天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
22天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
22天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
22天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
22天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
22天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
22天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
1月前
|
Python
Python 中常见的数据结构(二)
Python 中常见的数据结构(二)

热门文章

最新文章

下一篇
无影云桌面