将值循环到变量中的 Pythonic 方式

标签 python python-2.7

所以我已经完成了一个我正在做的项目,但我正在尝试找到一种方法,使其在某种意义上更加Python化,需要更少的行并且看起来更干净。以前有人告诉我,如果它没有损坏,就不应该修复,但我总是在寻找更好的方法来改进我的编程。

所以我有一个包含这些值的元组 n:

n = ((100,200), (300,400),(500,600)) 对于 enumerate(n) 中的 i、x: 如果 i 为 0:D = x[0] 如果 i 为 1:M = x[0] 如果 i 是 2: s = x[0] 打印D、M、s

其中 (D, M, s) 应打印出来:

100, 300, 500

有没有办法编写这些 if 语句,因为每次循环元组时它们都将始终是第一个值?

最佳答案

您可以利用解包和列表理解来完成此操作:

D, M, s = [x[0] 对于 n 中的 x]

这有效地循环遍历元组列表,获取第一项,并生成一个现在如下所示的列表:[100, 300, 500]

然后将其解压为:D、M、s

请注意,代码非常简单、易于阅读,并且不需要任何其他构造即可运行。

关于将值循环到变量中的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43640412/

相关文章:

python - 函数默认仅返回第一个输出值

python - 使用列作为变量时防止 sql "injection"的最佳方法

python - 用于在换行符处拆分的正则表达式,同时忽略由任意数量的引号包围的文本内的换行符

python - 如果内置函数的名称被另一个模块使用,如何使用它?

python - 巧妙地访问和修改多维列表

python-2.7 - Tensorflow + Keras + Convolution2d : ValueError: Filter must not be larger than the input: Filter: (5, 5) 输入 : (3, 350)

python - 在 Python 中,如何通过键列连接两个数组?

python - 使用 scrapy-splash 选择依赖下拉菜单

Python字典没有按顺序排列

python - 无法找到 vcvarsall.bat