首页 > 解决方案 > 解包列表项中的字符串文字有效,但不适用于字符串文字本身

问题描述

在使用解包字符串文字时,我在下面的 python 中看到了差异。我不明白为什么会这样。有人可以帮助理解吗?

解压后的字符串出现在列表项中:示例:

>>>mylist = ["ABC"]
>>>for a,b,c in mylist:
...  print(a)
...  print(b)
...  print(c)
...

结果:

A
B
C

但是,字符串解包在分配给变量时不起作用示例:

>>>mystring = "ABC"
>>>for a,b,c in mystring:
...  print(a)
...  print(b)
...  print(c)
...

结果:

Traceback (most recent call last):
    for a,b,c in mystring:
ValueError: not enough values to unpack (expected 3, got 1)

标签: pythonstringlist

解决方案


因为您在 for 循环中使用它,所以将其解压缩两次..

你应该使用:

a,c,b = 'ABC'
print(a)
print(b)
print(c)

或者:

for letter in 'ABC':
    print(letter)

两者都将打印相同的:

>>> A
>>> B
>>> C

推荐阅读