【问题标题】:Using for loops with nested loops in python在python中使用带有嵌套循环的for循环
【发布时间】:2014-07-16 16:18:52
【问题描述】:

我需要在单独的行上打印每个元素及其原子序数和重量,名称和原子序数和重量之间有一个冒号,但是,它每打印三遍,我明白为什么但不知道如何补救它。帮助

这是我使用的代码:

elements = [['beryllium', 4, 9.012], ['magnesium', 12, 24.305], ['calcium', 20, 40.078], ['strontium', 38, 87.620], ['barium', 56, 137.327], ['radium', 88, 266.000]]

for x in elements:
    for i in x:
        print str(x[0]), ':', str(x[1]), str(x[2])

【问题讨论】:

  • 为什么会有额外的for i in x: 行?除了让代码重复三遍之外,它似乎什么也没做。删除它,仅此而已。
  • 您不需要在每个要print 的项目上调用str。执行print x[0], ':', x[1], x[2] 会很好。

标签: python for-loop printing nested-loops


【解决方案1】:

您正在循环 3 个嵌套元素;只需删除嵌套的for

for x in elements:
    print str(x[0]), ':', str(x[1]), str(x[2])

您还可以让 Python 将元素解包为单独的名称;请注意,这里不需要显式的 str() 调用,因为您没有连接这些值;让print 为您将值转换为字符串:

for name, number, weight in elements:
    print name, ':', number, weight

接下来,使用string formatting 对输出进行更多控制:

for name, number, weight in elements:
    print '{:>10}: {:3d} {:7.3f}'.format(name, number, weight)

你会得到格式良好的输出:

>>> for name, number, weight in elements:
...     print '{:>10}: {:3d} {:7.3f}'.format(name, number, weight)
... 
 beryllium:   4   9.012
 magnesium:  12  24.305
   calcium:  20  40.078
 strontium:  38  87.620
    barium:  56 137.327
    radium:  88 266.000

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2020-12-30
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多