python - 解包列表项中的字符串文字有效,但不适用于字符串文字本身
问题描述
在使用解包字符串文字时,我在下面的 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)
解决方案
因为您在 for 循环中使用它,所以将其解压缩两次..
你应该使用:
a,c,b = 'ABC'
print(a)
print(b)
print(c)
或者:
for letter in 'ABC':
print(letter)
两者都将打印相同的:
>>> A
>>> B
>>> C
推荐阅读
- docker - 在 Docker Swarm 副本上使用 Traefik 的会话持久性
- discord.js - 如果用户在 x 分钟内未发送消息,则使机器人停止发送消息
- spring-boot - Spring Webflux Webclient设置Connection keepAlive时间
- c - 无符号字符,为什么输出为 254 预期为 255
- javascript - jQueryui Selectmenu - 保存价值
- java - Java Quartz/Cron Mongodb 并发问题
- sas - 使用 SAS 中的保留语句在组内创建相同的值
- django - 在两个项目之间共享数据库
- html - 使用 html 和 css 将侧边栏和文章定位在导航栏下方
- reactjs - Mobx-state-tree afterCreate() 在本机反应中不同步