python - 平均-Python

标签 python list file average

我试图找到范围内数字的平均值(即找到 1-1000 范围内所有数字的平均值)。我编写了以下代码来执行此操作,但由于 if 语句,在运行时,代码会生成多个数字。然后我尝试使用 while-loop 代替,但是当我输入 break 语句时,它生成了与 if 语句相同的 list 产生。有什么方法可以使用 if 语句 并获得 1 个平均值?谢谢!

mylist =[]
def ave_data(x, y):
    for line in filename:    
        for number in line.split():
            if int(number) > x and int(number) < y:
                mylist.append(int(number)) 
                print(sum(mylist)/len(mylist))

最佳答案

由于 if 语句,它不是。您只需将 print(..) 放在 for 循环的 if 中。通过将它移到外部 for 之外,它将打印整个文件的平均值:

def ave_data(x, y):
    mylist = []  # move inside
    for line in filename:    
        for number in line.split():
            if int(number) > x and int(number) < y:
                mylist.append(int(number)) 
    print(sum(mylist)/len(mylist))  # for the entire file.

您还可以将 mylist 变量移动到更好的内部函数。否则它是一个全局变量,其他函数可以改变它。此外,第二次运行将取两个文件的平均值。

话虽这么说,你把事情搞得太复杂了。您可以简单地使用:

def ave_data(x, y):
    mylist = [int(number) for line in filename for number in line.split()
                          if x < int(number) < y]
    print(sum(mylist)/len(mylist))  # for the entire file.

关于python - 平均-Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194037/

相关文章:

python - 使用 kwargs 在字典中添加键和值

python - 根据可用的库执行代码

python - Pandas 数据框可以有列表的数据类型吗?

java - 文件 I/O,使用构造函数变量创建路径

java - 在远程位置执行文件操作

c# - 如何将表格中的所有文本写为行

python - 在数据库中实现匹配

python - 如何为 CEF 应用程序编写 Selenium 测试

java - 修改 ArrayList 中的值

python:递归列表处理更改原始列表