繁体   English   中英

如何修改我的代码以适合 function 以使其正常运行?

[英]How can I modify my code to fit the function in order for it to run correctly?

所以我的任务是从像这样的 csv 文件列表中找到最受欢迎的出价

1,8dac2b,ewmzr,jewelry,phone0,9759243157894736,us,69.166.231.58,vasstdc27m7nks3
2,668d39,aeqok,furniture,phone1,9759243157894736,jp,50.201.125.84,jmqlhflrzwuay9c
3,622r49,arqek,vehicle,phone2,9759544365415694736,az,53.001.135.54,weqlhrerreuert6f
4,6444t43,rrdwk,vehicle,phone9,9759543263245434353,au,54.241.234.64,weqqyqtqwrtert6f

我必须确定最流行的出价,它出现在 csv 文件中的每 4 个元素中......

所以我要找的是那些周围有 (** **) 的东西,如下面的同一个例子所示

1,8dac2b,ewmzr,**jewelry**,phone0,9759243157894736,us,69.166.231.58,vasstdc27m7nks3
2,668d39,aeqok,**furniture**,phone1,9759243157894736,jp,50.201.125.84,jmqlhflrzwuay9c
3,622r49,arqek,**vehicle**,phone2,9759544365415694736,az,53.001.135.54,weqlhrerreuert6f    
4,6444t43,rrdwk,**vehicle**,phone9,9759543263245434353,au,54.241.234.64,weqqyqtqwrtert6f

所以从我的例子来看,output 应该是vehicle

看看我之前的问题,在这里我问了同样的问题: 如何在给定的 csv 列表中返回最常出现的值?

现在在 StackOverflow 用户https://stackoverflow.com/users/5387738/nikita-almakov的帮助下,我能够得到这个代码......

import csv
value_to_count = {}
    with open("tmp.csv", "r") as f:
        reader = csv.reader(f)
        for row in reader:
            category = row[3]
            if category in value_to_count:
                value_to_count[category] += 1
            else:
                value_to_count[category] = 1
    count_to_value = sorted((v, k) for k, v in value_to_count.items())

但是,当我尝试将此代码放在 function popvote(filename)下时,我遇到了一个问题,即我不知道在代码中的何处包含filename以获得正确的 output。

这是我到目前为止所拥有的:

import csv
def popvote(filename):
    value_to_count = {}
    with open("tmp.csv", "r") as f:
        reader = csv.reader(f)
        for row in reader:
            category = row[3]
            if category in value_to_count:
                value_to_count[category] += 1
            else:
                value_to_count[category] = 1
    count_to_value = sorted((v, k) for k, v in value_to_count.items())
    return count_to_value

但是,output,正如预期的那样没有正确打印。 我知道我没有在 function 中实现filename ,原因是我不知道在哪里这样做,有人可以帮我解决这个问题吗?

改变

with open("tmp.csv", "r") as f:

with open(filename, "r") as f:

如果文件filename是具有上述值的 CSV 文件,则应将"tmp.csv"替换为filename 然后这个 function 应该返回一个元组,前面有最受欢迎的出价。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM