尝试在 python 中正确实现 sum 和 clip list 操作
Posted
技术标签:
【中文标题】尝试在 python 中正确实现 sum 和 clip list 操作【英文标题】:Trying to properly implement both sum and clip list operations within python 【发布时间】:2019-04-07 04:25:48 【问题描述】:大家晚上好, 在试图理解在 python 中编译和定义列表操作的正确方法时,我遇到了很多问题,但在这种特殊情况下,更多地关注 sum 和 clip 列表函数。
为了提供一点上下文,这个程序获取用户输入的一组 10 个数字,并通过程序中包含的其他数字运行存储的数字,例如范围、平均值、中值等。虽然这些已经对我来说本身就是一个问题,我正在尝试解决修改总和和剪辑的问题。
def sum (number_list) :
for num in range ( number_list ):
sum ( number_list )
return ("The sum of the numbers in this list is :".format(sum(number_list)))
def clip (number_list, clipNum) :
import numpy as np
in_array = number_list
return ("Input array : ", in_array)
out_array = np.clip(in_array, a_min = 1, a_max = 8)
return ("Output array : ", out_array)
sum函数实际上应该是对用户输入的数字列表设置执行的第二次操作,而clip函数是最终执行的操作。我知道对于这个版本的 python,一些代码工作可能有点过时,或者可能只是一般不正确,但在这一点上,我更关心获得正确的结果。
【问题讨论】:
你期望什么,你实际得到什么? 对此表示歉意,应该在提示中更好地澄清这一点。对于总和,我希望基于数值的列表能够遍历它,因此我可以从十个用户输入的值中的每一个中获得总和。解释 clip 函数有点不那么简单,但它的目的是替换所有大于提供给该数字的数字,在这种情况下,必须在 clipNum 中指定。因此,例如,如果列表是 [3,17,5,9,1,11],clipNum 是 8,则返回的数组是 [3,8,5,8,1,8]。 我在 python 中实际得到的结果是由于 range 函数中所谓的未定义项而导致的回溯 感谢您的澄清!因此,对您来说,编辑您的问题可能会更好,不仅要指定您所期望的,还要指定您实际得到的(大概,您一定会得到一些意想不到的东西,否则您不会有问题,对吧?),这样阅读您的问题的人可以为您提供帮助,而无需在 cmets 中进行搜索。此外,发布 exact 错误回溯会比用您自己的方式描述它更好。 我认为您误解了return
的作用。它从您的函数中给出结果并退出它。我想你正在寻找print
【参考方案1】:
lst = [3,17,5,9,1,11]
def op_sum(number_list):
return sum(number_list)
def op_clip(number_list, clip_num) :
return [min(n, clip_num) for n in number_list]
print("sum =", op_sum(lst))
print("clip =", op_clip(lst, 8))
打印:
sum = 46
clip = [3, 8, 5, 8, 1, 8]
【讨论】:
以上是关于尝试在 python 中正确实现 sum 和 clip list 操作的主要内容,如果未能解决你的问题,请参考以下文章