list - 通过函数传递列表的所有元素

标签 list function python-3.x parameters

我创建了一个 python 程序,用于排列并查找用户输入的一系列数字的中位数。我不断收到此错误。

回溯(最近一次调用最后一次): 文件“C:/Users/NL-LP3/Desktop/Corses/Python/Tests Programs/median user input.py”,第 24 行,位于 中位数(^系列) 类型错误:median() 需要 1 个位置参数,但给出了 4 个

    series=[]
    finished = False
    while not finished:
        number = input("Please enter a number, when you are done hit ENTER")   
        if len(number)>0:
            series.append([number])
            print ("Number Entered")        
        else:
            finished = True

    print (series)

    def median(data):
        data.sort(key=int)
        elements = len(data)
        middle = int(elements/2)
        if elements%2 ==1:
             print (data[middle])
        else:
            half = ((data[middle])+(data[middle-1]))/2
            print (half)

    median(*series)

最佳答案

这里有三个问题:

  1. 您正在将字符串传递到数组中,需要将其转换为 int
  2. 您将一个数组传递给另一个数组,该数组会给出如下输出:

    [[5]、[6]、[7]]

  3. 您正在尝试使用 * 系列中的 * 来解压数组。

必须是这样的:

[5, 6, 7]

更改此行:

series.append(int(number))

您还只需将数组传递给中位数,如下所示:

median(series)

关于list - 通过函数传递列表的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41725370/

相关文章:

java - 如何在java中从外部更改/更新方法?

python - 如何在 Python 中使用递归查找素数

python - 将黑框添加到列表中的图像

c - 使用在 main1() 中生成的值并在 main2() 中使用它们

javascript - 简化的 javascript 一些功能几乎相同的代码

javascript - 如何防止 onmouseover 函数连续触发

python - 我是 Python 新手,在向程序添加一行代码后设法使 IDLE 崩溃

python - 每当使用 import cv2 时,OpenCV 都会出错

c# - 属性谓词

c# - Linq 过滤器 List<string> 其中包含来自另一个 List<string> 的字符串值