作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试一个练习,希望我返回一个新列表,其中包含所有相同的元素,但负数除外,这些元素在返回的列表中变成零。
我使用了 for 循环来遍历参数列表,如果数字低于 0,我会将其 append 到一个新列表中,但将其乘以 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_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):
return [max(num, 0) for num in num_list]
max
函数是一个 Python 内置函数,它将返回传递的数字之间的最大值。
关于Python:如何将每个负数变成零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56503182/
我是一名优秀的程序员,十分优秀!