【问题标题】:How to read array's element inside print function in Python?如何在 Python 中读取 print 函数中的数组元素?
【发布时间】:2019-03-18 12:46:21
【问题描述】:

我想创建以下输出只使用一次打印功能:

1 - Add
2 - Subtract
3 - Divide
4 - Multiply

为此,我使用以下代码:

> for i in range(1, 5):
>     array = ["Add", "Subtract", "Divide", "Multiply"]
>     print(f"{i} - array[{i-1}]")

但我得到的输出是:

1 - array[0]
2 - array[1]
3 - array[2]
4 - array[3]

你能帮我看看我做错了什么吗? 如何在 print 函数中调用数组的元素?

【问题讨论】:

    标签: python arrays string f-string


    【解决方案1】:

    您需要将列表索引移动到{} 内,否则array 将被解释为字符串:

    print(f"{i} - {array[i-1]}")
    

    但是您在循环中使用了 4 次 print 函数。如果如您所说,您希望只使用一次 print,您可以解压缩生成器表达式并使用 sep 参数:

    array = ['Add', 'Subtract', 'Divide', 'Multiply']
    print(*(f'{idx} - {val}' for idx, val in enumerate(array, 1)), sep='\n')
    

    【讨论】:

      【解决方案2】:

      你想要的是:

      print(f"{i} - {array[i-1]}")
      

      但最好在循环之前初始化数组,否则每次运行循环时都创建相同的数组。

      所以,这样的事情效率更高:

      array = ["Add", "Subtract", "Divide", "Multiply"]
      for i in range(1, 5):
          print(f"{i} - {array[i-1]}")
      
      # 1 - Add
      # 2 - Subtract                                                
      # 3 - Divide                                                 
      # 4 - Multiply                                     
      

      【讨论】:

        【解决方案3】:

        您还想获取数组变量:print(f"{i} - {array[i-1]}")

        【讨论】:

          【解决方案4】:

          可以改成这样:

          print(i, '-', array[i-1])
          

          如果你使用格式,只解释在花括号{},外面的array被当作一个字符串,所以你可以让它像这样工作:

           print(f"{i} - {array[i-1]}")
          

          【讨论】:

            最近更新 更多