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月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
203 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
3月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
158 62
|
1月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
57 7
|
29天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
112 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
133 66
|
3月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
151 59
|
3月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
173 59
|
3月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
3月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
133 61
|
3月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
119 55

热门文章

最新文章