csv 找一个面积最大的房子,并返回谁住在那里(没有Pandas)

lg40wkob  于 2022-12-15  发布在  其他
关注(0)|答案(3)|浏览(160)

我是python的新手,正在为这段代码而挣扎。我有一个csv文件,正在尝试创建一个函数。这个文件,personal_info.csv,有几列,一列标记为house_area,一列名为full_name。我正在尝试创建一段代码,它将找到面积最大的房子,并返回拥有它的人的名字。
除了csv文件之外,我也不允许导入任何东西,所以我不能使用Pandas。
下面是一些数据的样子:
| 房屋面积|全名|
| - ------|- ------|
| 40.132美元|约翰·史密斯|
| 八十五八三二|李安娜|
| 三十八点四二七|艾玛·琼斯|
因此,在这个小样本中,我试图找到面积最大的房子(85.832),并打印出此人的名字安娜。

iklwldmw

iklwldmw1#

读取并迭代csv中的每一行,检查当前值是否大于当前最大值,如果为真,则更新值:

import csv

with open("personal_info.csv", newline="") as csvfile:
    reader = csv.DictReader(csvfile)

    max_area = 0
    max_name = ""

    for row in reader:
        area = float(row["house_area"])
        if area > max_area:
            max_area = area
            max_name = row["full_name"]

    print(max_name)

如果有两个房子大小相同,则返回第一个房子的名称。

3duebb1j

3duebb1j2#

一个简单的方法是创建一个名为largest_area的变量来跟踪最大的房屋面积,并将其值设置为0(假设CSV中的所有房屋面积都大于0)。
然后使用csv库,遍历CSV文件中的每一行,获取house_area,并将其与您创建的largest_area变量进行比较,如果较大,则更新largest_area,否则忽略并继续遍历CSV文件。
浏览完CSV文件后,最大的区域应该在largest_area变量中。

2w3rbyxf

2w3rbyxf3#

您可以通过使用csv.readermax来对csv执行此操作:

import csv
​
with open("personal_info.csv", "r") as f:
    csv_reader = csv.reader(f, delimiter=",")
    max_row = max(csv_reader, key=lambda row: float(row[0]))

# Output​
print(max_row)​
['85.832', 'Anna Lee']

相关问题