【问题标题】:Python Loop AssistancePython 循环辅助
【发布时间】:2019-11-13 06:42:26
【问题描述】:

我是 Python 新手,需要帮助解决一些循环问题。

我有一个名为 test1.csv 的 CSV 文件,其中有两列(Fruit 和 Fruit_Container)

Screenshot of the CSV file 这是我的代码:

import csv

def fruits():
    with open('test1.csv', mode='r') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            print(f'Fruits: {row["Fruit"]}')

def fruit_container():
    with open('test1.csv', mode='r') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            print(f'The fruits are: {row["Fruit"]} and they are placed in a {row["Fruit_Container"]}')

fruits()
fruit_container()

我得到的结果如下:

Fruits: Apple
Fruits: Banana
Fruits: Orange
The fruits are: Apple and they are placed in a Crate
The fruits are: Banana and they are placed in a Crate
The fruits are: Orange and they are placed in a Crate

但我想要的结果如下:

Fruits: Apple
Fruits: Banana
Fruits: Orange

The fruits are: 
Apple and they are placed in a Crate
Banana and they are placed in a Crate
Orange and they are placed in a Crate

我怎样才能实现这个输出?

问候 丹尼斯

【问题讨论】:

  • 将“The fruits are:”(只有那些词!)的打印移动到循环之前,它只会打印一次。
  • 在fruit_container() 函数中,“水果是:”应该在循环之外

标签: python loops csv


【解决方案1】:

你需要在for循环之外写The fruits are:

def fruit_container():
    with open('test1.csv', mode='r') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        print("The fruits are: ")
        for row in csv_reader:
            print(f'{row["Fruit"]} and they are placed in a {row["Fruit_Container"]}')

【讨论】:

    【解决方案2】:

    您可以使用以下代码来达到预期的效果:

    定义:

    import csv
    def fruits():
        with open('test1.csv', mode='r') as csv_file:
            csv_reader = csv.DictReader(csv_file)
            fruits_list = []
            fruits_container_list = []
            for row in csv_reader:
                fruits_list.append(row["Fruit"])
                fruits_container_list.append(row["Fruits_Container"])
            return fruits_list, fruits_container_list
    

    方法调用:

    fruits_list, fruits_container_list  = fruits()
    for index in range(0, len(fruits_list)):
            print('Fruits: {}'.format(fruits_list[index]))  
    print('\nThe fruits are: ')
    for index in range(0, len(fruits_list)):
            print('{} and they are placed in a {}'.format(fruits_list[index], fruits_container_list[index]))
    

    return fruits_listreturn fruits_container_list 是调用的两个列表对象的返回语句。这有助于简化流程。 for index in range(0, len(fruits_list)) 遍历列表以生成同步输出。快乐编码!

    【讨论】:

      猜你喜欢
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多