python - 多字符串变量声明python

标签 python

我想弄清楚这段代码的作用:

printdead, printlive = '_#'

它来自这里,一个实现了初等元胞自动机的网站:https://rosettacode.org/wiki/One-dimensional_cellular_automata#Python

显然我可以通过简单地写来替换上面的语句

printdead = '_'
printlive = '#'

printdead = '_'; printlive = '#'

printdead, printlive = '_', '#'

这对我来说完全没问题。但是第一个语句是如何工作的?

最佳答案

这称为可迭代拆包。如果赋值的右侧是一个可迭代对象,您可以将这些值解包为不同的名称。字符串、列表和元组只是 Python 中可迭代对象的几个例子。

>>> a, b, c = '123'
>>> a, b, c
('1', '2', '3')
>>> a, b, c = [1, 2, 3]
>>> a, b, c
(1, 2, 3)
>>> a, b, c = (1, 2, 3)
>>> a, b, c
(1, 2, 3)

如果您使用的是 Python 3,您可以访问 Extended Iterable Unpacking 这允许您在作业中使用一个通配符。

>>> a, *b, c = 'test123'
>>> a, b, c
('t', ['e', 's', 't', '1', '2'], '3')
>>> head, *tail = 'test123'
>>> head
't'
>>> tail
['e', 's', 't', '1', '2', '3']

关于python - 多字符串变量声明python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43870456/

相关文章:

python - 将动态制作的小部件绑定(bind)到 PyQt5 中的一个信号

python - 如何访问python中模块的所有内置函数列表

Pythonic 累积图

python - 带有 TkAgg 错误 : PyEval_RestoreThread: null tstate on save_fig() - do I need threads enabled? 的 Matplotlib

python - 使用 threaded=True 同时处理 Flask 请求

python - 使用 Python 计算 HTTP header 的香农熵。怎么做?

python - 矩阵的 NumPy 张量/克罗内克积被打乱

python - 请帮助我理解 python 对象实例化。

python - Tensorflow 是否应该始终使用尽可能多的 Cuda 核心?

python - 将文本中的值替换为 python 字典中的整数值并求其总和