python - 错误显示太多要解压的值,但只有两个参数
问题描述
Q) 编写一个函数,接收一个包含两个单词的字符串,如果两个单词都以相同的字母开头,则返回 True。
这是我尝试过的-
def animal_crackers(text):
for x,y in text.split():
if x[0].lower() == y[0].lower():
return True
else:
return False
这里显示了错误-
太多值无法解包(预期 2)
对于第 2 行 -for x,y in text.split():
我不明白为什么会出现这个错误,因为它只有两个词可以解压。
解决方案
for x, y in
意味着你要循环多对。如果你只有一对,你想要x, y =
。
def animal_crackers(text):
x, y = text.split()
return x[0].lower() == y[0].lower()
>>> animal_crackers('foo bar')
False
>>> animal_crackers('bar baz')
True
顺便说一句,我简化了另一部分。
解释
您收到该错误的原因是您提供的第一个单词有两个以上的字母。例如:
def f(text):
for x, y in text.split():
return x[0].lower() == y[0].lower()
>>> f('hh')
True
>>> f('hb')
False
>>> f('i')
...
ValueError: not enough values to unpack (expected 2, got 1)
>>> f('iii')
...
ValueError: too many values to unpack (expected 2)
推荐阅读
- c# - 从睡眠模式返回时的后台任务,仅显示一次 - UWP
- javascript - 如何使用 CSS 类获得所需的输出?
- powershell - 仅当脚本在子目录中时如何执行代码块?
- javascript - 无法使用 PhantomJS 上传文件
- java - 使用 32 位 Windows 操作系统和 jdk 1.7,我可以使用 java Netbeans 成功编写基于云的应用程序吗
- node.js - 如何在koa2中显示`[object Promise]`的内容
- python - Python:如何在 RecycleView 中添加垂直滚动
- python - 通过结构将python dict解析为matlab时处理无效的字段名
- scala - 关于操作数据框
- javascript - 对于函数范围的变量,使用 const 而不是 var?