我有一个关于如何改进我写的小事的问题。我对Python很新,我尝试使用for循环但是失败了,我想知道是否有更有效的方法来编写这个函数(我想用for循环但是如果你们有一个更好的主意如果你发布它,我会很感激。谢谢! 顺便说一句,收到的清单只是数字,没有任何字符串,字符等。
$Object->method()->object->object->value................
$Object->object->value.....................
etc...
答案 0 :(得分:0)
使用综合列表,如:
def newList(n1,n2,n3,List):
avg = (n1+n2+n3)/3
print [i-avg for i in List]
使用此示例解释列表理解:
让我们在List'
中解释i对于'列表'的每个元素,它都是For循环含义。在哪里'我'将会 等于这个元素。
列表= [1,2,3]
第一循环:i = 1,第二循环i = 2,第三循环i = 3
然后部分' i-avg'表示每个循环,i-avg的返回值
我们说' avg = 1'
拳头循环:(i = 1)返回1-1(i-avg); 0
第二个循环:(i = 2)返回2-1; 1
第三循环:(i = 3)返回3-1; 2
答案 1 :(得分:0)
当你想对列表中的每个项目执行相同的操作时,Python的list comprehensions非常有用。例如,假设您有一个按如下方式定义的数字列表:
list_of_numbers = [1, 2, 3, 4, 5]
要为此列表中的每个数字添加5并将其放入名为new_list
的变量中,您将使用列表解析:
new_list = [number + 5 for number in list_of_numbers]
如果您检查new_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]