当前位置: 首页 > 面试题库 >

将拆分后的字符串转换为元组会导致“太多值无法解包”

谭志用
2023-03-14
问题内容

在for循环中使用split会导致上述异常。但是,当从for循环中获取独立元素时,它可以工作:

>>> for k,v in x.split("="):
...   print k,v
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> y =  x.split("=")
>>> y
['abc', 'asflskfjla']
>>> k,v = y
>>> k
'abc'
>>> v
'asflskfjla'

一个解释将不胜感激-并且自然也为for循环版本的正确语法。


问题答案:

for环路期望的是,在迭代每个项目可以解压到两个变量。因此,在您的情况下,看起来像其中之一:

[('a, b'), ('c, d'), ...]
[['a, b'], ['c, d'], ...]
['ab', 'cd', ...]
...

这些可迭代项中的每个项都可以分为kv组件。在您的情况下,它们不能,因为的输出x.split('=')是具有两个以上字符的字符串列表:

['abc', 'asflskfjla']


 类似资料:
  • 问题内容: 我正在努力将字符串转换为元组而不在此过程中拆分字符串的字符。有人可以建议一种简单的方法来做到这一点。需要一个衬板。 失败 作品 由于我的输入是字符串,因此我尝试了以下代码,将字符串转换为列表,该列表再次将字符串拆分为字符.. 失败 预期产量: 产生的输出: 问题答案: 你可以做。无需使用功能。(请注意,逗号是必需的。) 从本质上讲,是指做出的一个元组 内容 的,不只是由一个元组本身。字

  • 问题内容: 我有一个这样的字符元组: 我如何将其转换为字符串,使其类似于: 问题答案: 用途:

  • 问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 我在尝试使用nokogiri运行rake任务时遇到这个错误。 编辑:顶部表架构

  • 将多行字符串根据行拆分为数组。 使用 String.split() 和一个正则表达式来匹配换行符并创建一个数组。 const splitLines = str => str.split(/\r?\n/); splitLines('This\nis a\nmultiline\nstring.\n'); // ['This', 'is a', 'multiline', 'string.' , '']