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}
"""

小结

  • 自动解包支持一切可迭代对象
  • 函数调用时,可以用 * 或者 ** 解包可迭代对象
目录
相关文章
|
4月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
592 0
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
691 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
6月前
|
数据处理 开发工具 开发者
requirement.txt 管理python包依赖
在 Python 项目中,`requirements.txt` 用于记录依赖库及其版本,便于环境复现。本文介绍了多种生成该文件的方法:基础方法使用 `pip freeze`,进阶方法使用 `pipreqs`,专业方法使用 `poetry` 或 `pipenv`,以及手动维护方式。每种方法适用不同场景,涵盖从简单导出到复杂依赖管理,并提供常见问题的解决方案,帮助开发者高效生成精准的依赖列表,确保项目环境一致性。
2034 4
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
637 7
|
7月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
360 1
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
544 156
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
503 153
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
574 151
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
547 156

推荐镜像

更多