所以我已经完成了一个我正在做的项目,但我正在尝试找到一种方法,使其在某种意义上更加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/