当前位置: 首页 > 知识库问答 >
问题:

这段代码是如何转换成python 2的?

甄鹏云
2023-03-14
import csv

with open('scores.csv') as handle:
    reader = csv.reader(handle)
    for row in list(reader)[1:]:
        user, *scores = row
        average = sum([int(score) for score in scores]) / len(scores)
        print (
            "{user} has average of {average}".format(user=user,average=average)
        ) 

由于*分数,此代码在Python2.7中无法工作。我不知道如何将其更改为python 2.7?

这段代码取自此线程:行平均CSV Python

共有2个答案

吉玉石
2023-03-14

你应该使我们的代码与python 3尽可能兼容,与未来的导入:

from __future__ import division, print_function
import csv

with open('scores.csv') as handle:
    reader = csv.reader(handle)
    next(reader) # header
    for row in reader:
        user = row[0]
        scores = row[1:]
        average = sum(int(score) for score in scores) / len(scores)
        print (
        "{user} has average of {average}".format(user=user, average=average)
        ) 
邹驰
2023-03-14

换线

user, *scores = row

user, scores = row[0], row[1:]

注:除上述内容外,您还应更改

average = sum([int(score) for score in scores]) / len(scores)

average = sum([int(score) for score in scores]) / float(len(scores))

Python2.X中的除法是整数除法。或者,您也可以从future导入real division

from __future__ import division

要使用整数除法,请使用双正斜杠'//'

 类似资料:
  • 我已经开始学习JavaScript,我试图制作一个加载条的动画,但我不知道如何使它在条到达终点后重复这个功能,我想也许通过一个循环我可以得到我想要的结果,但我仍然在学习循环,我尝试了不同的方法,改变了整个代码,但没有任何效果。 有人能帮我吗?谢谢你抽出时间。

  • 这是我试图转换成java的代码,但我不理解它,实际上我得到这段代码作为一个答案,但他/她用kotlin给我

  • 实际上,下面的代码不能用这个命令用Clang编译: . 我只想模仿与C中的“交换习惯用法”相同的行为,使用“using directive”来启用ADL。但是下面的代码哪里错了呢?预期的调用优先级应为:N1::foo 错误消息: 更新: 我将N2::foo更改为可以在某种程度上模仿std::交换的模板方法。所以,这里的问题是为什么不能由在函数中?因为当它们具有相同的优先级时,该函数应该比要调用的模

  • 我有以下java代码: 我想将其转换为smali code 我怎么能这样做?(我尝试了java2smali插件,但失败了)

  • 问题内容: 在代码底部运行的示例需要很长时间才能在我的机器上解决: 这是代码: 每只只供三只骆驼。我想至少这样做4次。该测试用例仍在运行(现在:()已经大约5分钟了。如果完成,我将对其进行更新。 我应该怎么做才能改善这段代码?(通常以性能为依据,但也欢迎其他建议)。 问题答案: 我以前也被这个绊倒了。这里的瓶颈实际上是。 该in语句是如此易于使用,你忘记了它是线性搜索,而当你在列表上进行线性搜索时