Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 接收三个数字和一个列表的函数,获取这三个数字的平均值,并从列表中的每个数字中减去平均值_Python_Python 2.7 - Fatal编程技术网

Python 接收三个数字和一个列表的函数,获取这三个数字的平均值,并从列表中的每个数字中减去平均值

Python 接收三个数字和一个列表的函数,获取这三个数字的平均值,并从列表中的每个数字中减去平均值,python,python-2.7,Python,Python 2.7,我有一个关于如何改进我写的一些小东西的问题。我对Python相当陌生,我曾尝试使用for循环来编写此函数,但失败了,我想知道是否有更有效的方法来编写此函数(我想使用for循环来编写此函数,但如果你们有更好的想法,我将不胜感激)。谢谢 顺便说一句,收到的列表只有数字,没有任何字符串、字符等 def newList(n1,n2,n3,List): avg = (n1+n2+n3)/3 i=0 while i<len(List): List[i] -= a

我有一个关于如何改进我写的一些小东西的问题。我对Python相当陌生,我曾尝试使用for循环来编写此函数,但失败了,我想知道是否有更有效的方法来编写此函数(我想使用for循环来编写此函数,但如果你们有更好的想法,我将不胜感激)。谢谢 顺便说一句,收到的列表只有数字,没有任何字符串、字符等

def newList(n1,n2,n3,List):
    avg = (n1+n2+n3)/3
    i=0
    while i<len(List):
        List[i] -= avg
        i += 1
    print D
def新列表(n1、n2、n3、列表):
平均值=(n1+n2+n3)/3
i=0

而我使用综合列表,如:

def newList(n1,n2,n3,List):
    avg = (n1+n2+n3)/3
    print [i-avg for i in List]
要使用此示例解释列表理解,请执行以下操作:

  • 让我们解释一下“我在列表中”

    • 这是一个For循环的意思,对于'List'中的每个元素,其中'i'都是 等于这个元素

      列表=[1,2,3]
      第一个循环:i=1,第二个循环i=2,第三个循环i=3

    • “i-avg”部分表示每个循环的i-avg返回值
      假设“平均值=1”
      第一个循环:(i=1)返回1-1(i-avg);0
      第二个循环:(i=2)返回2-1;1
      第三个循环:(i=3)返回3-1;2

当您希望对列表中的每个项目执行相同的操作时,Python非常有用。例如,假设您有一个数字列表,定义如下:

list_of_numbers = [1, 2, 3, 4, 5]
要向列表中的每个数字添加5,并将其放入名为
new\u list
的变量中,您需要使用列表理解:

new_list = [number + 5 for number in list_of_numbers]
如果您检查
new\u list
的值,您将看到它是:

[6, 7, 8, 9, 10]
您可以在
newList()方法中使用列表理解:

def newList(n1, n2, n3, list):
  average = (n1 + n2 + n3) / 3
  result_list = [item - average for item in list]
  return result_list
当你这样称呼它时:

newList(1, 2, 3, [4, 5, 6])
您将得到以下结果:

[2, 3, 4]

List[:]=[v-列表中v的平均值]
应该这样做,没有循环。for循环是如何失败的?“It failed”不是一个充分的问题陈述。请将您的
while
循环替换为
for
循环-尝试此操作,查看它对列表中的项的
工作原理:打印(项-平均值)
,或者如果您知道列表的理解,请按照Jean Francois的注释执行。顺便说一句,惯例上说变量名称不要用大写字母。我的意思是我试图用for循环来实现它,但没有成功。。。比如,我真的不明白我应该怎么做才能用for循环完成这个问题。抱歉,如果我说得不够清楚,我是这个网站的新手+英语不是我的第一语言。@Chris_Rands你帮我想出了一个解决方案,它不涉及列表理解,而是像我最初想要的那样涉及for循环。谢谢我还不知道清单的意思,但谢谢你!我试着在我的回答中解释这个解释和另一个答案,我想我现在非常理解列表的理解,谢谢!哦,我想知道,为什么在函数中使用print?例如,如果你想存储在列表中,你可以附加它或其他东西,print除了演示之外没有任何用途