为什么字典键和值是字符串时可以解压为元组?

2024-04-28 05:45:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

my_dict = {"one":"AAA", "two":"BBB", "thr":"CCC"}
for a, b, c in my_dict.keys():
    print(a, b, c)
print("-----")   
for x, y, z in my_dict.values():
    print(x, y, z)

当运行时,它返回的值低于输出值

o n e
t w o
t h r
-----
A A A
B B B
C C C

有人能解释为什么当键和值是字符串类型时,它能够将它们解包为元组吗

我知道my_dict.items()可以被解包为(a,b)类型的元组,因为my_dict.items()返回一个元组。但是当返回类型为string时,为什么在这里


1条回答
网友
1楼 · 发布于 2024-04-28 05:45:54

这与词典本身无关

这仅仅是因为字符串是“可解压的”,因为它们是可解压的

您的代码工作的原因与以下工作的原因相同:

a, b, c = 'abc'
print(a, b, c)
# a b c

请注意,如果任何字符串恰好短于或长于3个字符,您的示例(以及我示例中的代码)将中断:

a, b, c = 'abcd'
ValueError: too many values to unpack (expected 3)

a, b, c = 'ab'
ValueError: not enough values to unpack (expected 3, got 2)

相关问题 更多 >