我很困惑为什么我可以将返回值分配/解包给split()
适当数量的变量,但是在使用格式化指令的打印字符串中使用同样失败。
例如,给定:
In [202]: s
Out[202]: 'here are 4 values'
In [203]: s.split()
Out[203]: ['here', 'are', '4', 'values']
这按预期工作:
In [204]: a, b, c, d = s.split()
In [205]: print '%s %s %s %s' % (a, b, c, d)
here are 4 values
但这失败了..
In [206]: print '%s %s %s %s' % (s.split())
我不确定为什么?不应该将返回的split()
结果解包并分布在格式化字符串的预期参数上吗?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
C:\bla\Desktop\<ipython-input-206-600f130ff0b2> in <module>()
----> 1 print '%s %s %s %s' % (s.split())
TypeError: not enough arguments for format string
“注意足够多的论据” .. 我在列表中确实有正确数量的项目。在这种情况下,列表是否由于某种原因没有解包,但对变量赋值?
我在尝试回答这个问题时遇到了这个 问题