首页 > 解决方案 > 在 For 循环中使用变量

问题描述

我无法准确地表达我的问题,所以如果这个问题得到了回答,我很抱歉。我将尝试用代码解释它。

String_0 = "Car"
String_1 = "Bus"
String_2 = "Plane"
for i in range(3):
    print(String_i)

我想要这样的输出:

Car
Bus
Plane

编辑:我的原始代码是这样的:

tableData = [['apples', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]


def tablePrinter(tableData):
    Space_0 = 0
    Space_1 = 0
    Space_2 = 0
    for i in range(len(tableData[0])):
        if len(tableData[0][i]) > Space_0:
            Space_0 = len(tableData[0][i])
    for i in range(len(tableData[1])):
        if len(tableData[1][i]) > Space_1:
            Space_1 = len(tableData[1][i])
    for i in range(len(tableData[0])):
        if len(tableData[2][i]) > Space_2:
            Space_2 = len(tableData[2][i])
    for i in range(len(tableData[0])):
        print(tableData[0][i].rjust(Space_0), tableData[1][i].rjust(Space_1),
              tableData[2][i].rjust(Space_2), end = "")
        print()
        
tablePrinter(tableData)

我的输出是这样的:

  apples Alice  dogs
 oranges   Bob  cats
cherries Carol moose
  banana David goose

这个输出是我想要的。但我想通过编辑这部分来简化代码:

for i in range(len(tableData[0])):
            print(tableData[0][i].rjust(Space_0), tableData[1][i].rjust(Space_1),
                  tableData[2][i].rjust(Space_2), end = "")
            print()

我想要这样的结构:

for i in range(len(tableData[0])):
        for k in range(len(tableData)):
            print(tableData[k][i].rjust(Space_k), end = " ")
        print()

我试图将您的建议应用于这部分。我尝试在前面tableData[k][i].rjust(Space_k)或前面添加 globals()、locals( Space_k) 尝试了 {} .format 结构,尝试使用列表,但我无法解决。

Edit2:所以我设法解决了使用列表的问题。谢谢大家。

spaceList = [Space_0, Space_1, Space_2] # I added this to function.

而不是最后一部分的这一行,

print(tableData[k][i].rjust(Space_k), end = " ")

我用这个:

print(tableData[k][i].rjust(spaceList[k]), end = " ")

标签: pythonpython-3.x

解决方案


您可以将它们放在一个列表中并对其进行迭代。

for vehicle in ['Car', 'Bus', 'Plane']:
    print(vehicle)

或者,如果您需要通过索引访问它们,您仍然可以使用 list。

vehicles = ['Car', 'Bus', 'Plane']

for i in range(len(vehicles)):
    print(vehicles[i])

推荐阅读