Python:如何将每个负数都变成零?
我正在尝试一个练习,希望我返回一个新列表,该列表包含所有相同的元素,除了返回列表中变为零的负数 我使用for循环遍历参数列表,如果数字小于0,我会将其附加到新列表中,但乘以0。然而,我得到了奇怪的输出,比如空列表。例如,应打印以下代码:Python:如何将每个负数都变成零?,python,list,for-loop,append,Python,List,For Loop,Append,我正在尝试一个练习,希望我返回一个新列表,该列表包含所有相同的元素,除了返回列表中变为零的负数 我使用for循环遍历参数列表,如果数字小于0,我会将其附加到新列表中,但乘以0。然而,我得到了奇怪的输出,比如空列表。例如,应打印以下代码: [0,0,9,0,0,34,1] [9,34,1] [0,0,0] 请坚持使用列表方法,谢谢 守则: def get_new_list_no_negs(num_list): new_list = [] for i in range(len(num
def get_new_list_no_negs(num_list):
new_list = []
for i in range(len(num_list)):
if i < 0:
new_list.append(num_list[i] * 0)
return new_list
def main():
print("1.", get_new_list_no_negs([-3, -6, 9, 0, 0, 34, 1]))
print("2.", get_new_list_no_negs([9, 34, 1]))
print("3.", get_new_list_no_negs([-9, -34, -1]))
main()
def get_new_list_no_negs(num_list):
新列表=[]
对于范围内的i(len(num_列表)):
如果i<0:
新增列表。追加(num\u list[i]*0)
返回新列表
def main():
打印(“1.”,获取新列表\u否负([-3,-6,9,0,0,34,1]))
打印(“2.”,获取新列表,无负([9,34,1]))
打印(“3.”,获取新列表编号负([-9,-34,-1]))
main()
这应该可以:
def get_new_list_no_negs(num_list):
return [max(num, 0) for num in num_list]
max
函数是一个python内置函数,它将返回传递的数字之间的最大值。试试这个
l=[-2,-1,0,1,2]
#这个
l=[如果i>0,则i代表l中的i,否则为0]
#或
l=[l中i的最大值(i,0)]
该函数向iterable添加一个计数器
因此,对于游标中的每个元素,都会生成一个元组(counter,element);for循环分别将其绑定到行号和行
l = [-2, -1, 0, 1, 2]
for index, value in enumerate(l):
if value < 0:
l[index] = 0
print(l)
[0, 0, 0, 1, 2]