鱼C论坛

 找回密码
 立即注册
查看: 2686|回复: 3

[已解决]**是不是也是解包啊?

[复制链接]
发表于 2023-4-8 00:15:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>>site = {"name": "菜鸟教程", "url": "www.runoob.com"}
>>>print("网站名:{name}, 地址 {url}".format(**site))
网站名:菜鸟教程, 地址 www.runoob.com


我的问题:**site是不是表示解包啊?

最佳答案
2023-4-8 00:39:16
lzb1001 发表于 2023-4-8 00:31
我记得大神说过*也是解包

是的,*和**都可以用于解包,但它们的用途和操作对象有所不同。

1、单个星号*用于解包可迭代对象(如列表、元组等),将它们分解为独立的位置参数。例如:
def func(a, b, c):
    print(a, b, c)

args = [1, 2, 3]
func(*args)  # 等价于 func(1, 2, 3)

2、双星号**用于解包字典,将其键值对分解为独立的关键字参数。例如:
def func(a, b, c):
    print(a, b, c)

kwargs = {'a': 1, 'b': 2, 'c': 3}
func(**kwargs)  # 等价于 func(a=1, b=2, c=3)

总之,*主要用于处理位置参数,而**主要用于处理关键字参数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-8 00:17:39 | 显示全部楼层
本帖最后由 isdkz 于 2023-4-8 00:20 编辑

是的,这里的**site表示解包。在这个示例中,site是一个字典,包含了两个键值对。

使用**操作符可以将字典解包,将键值对作为命名参数传递给format方法。

在这个例子中,format(**site)等价于format(name="菜鸟教程", url="www.runoob.com")。

所以,字符串中的占位符{name}和{url}会被替换为字典中对应的值,结果就是网站名:菜鸟教程, 地址 www.runoob.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-8 00:31:58 | 显示全部楼层
isdkz 发表于 2023-4-8 00:17
是的,这里的**site表示解包。在这个示例中,site是一个字典,包含了两个键值对。

使用**操作符可以将字 ...

我记得大神说过*也是解包


一个*和两个**的解包有何区别?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-8 00:39:16 | 显示全部楼层    本楼为最佳答案   
lzb1001 发表于 2023-4-8 00:31
我记得大神说过*也是解包

是的,*和**都可以用于解包,但它们的用途和操作对象有所不同。

1、单个星号*用于解包可迭代对象(如列表、元组等),将它们分解为独立的位置参数。例如:
def func(a, b, c):
    print(a, b, c)

args = [1, 2, 3]
func(*args)  # 等价于 func(1, 2, 3)

2、双星号**用于解包字典,将其键值对分解为独立的关键字参数。例如:
def func(a, b, c):
    print(a, b, c)

kwargs = {'a': 1, 'b': 2, 'c': 3}
func(**kwargs)  # 等价于 func(a=1, b=2, c=3)

总之,*主要用于处理位置参数,而**主要用于处理关键字参数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 11:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表