[英]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.