Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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 如何通过求和并让它先输出我的elif数来获得仅2个数的输出_Python - Fatal编程技术网

Python 如何通过求和并让它先输出我的elif数来获得仅2个数的输出

Python 如何通过求和并让它先输出我的elif数来获得仅2个数的输出,python,Python,我输入DegreeDays([67,78,96,80,75,62,53]),它会给我[0,16,7]。我需要它输出[7,16]。它应该输出if语句和elif语句的总和 def DegreeDays(val1): results = [] for val in val1: if 79 < val < 97: results.append(96-val) elif 52 < val < 61:

我输入
DegreeDays([67,78,96,80,75,62,53])
,它会给我
[0,16,7]
。我需要它输出
[7,16]
。它应该输出if语句和elif语句的总和

def DegreeDays(val1):
    results = []
    for val in val1:
        if 79 < val < 97:
            results.append(96-val)


        elif 52 < val < 61:
            results.append(60-val)


    return results
def DegreeDays(val1):
结果=[]
对于val1中的val:
如果79
以获取上述预期结果

我假设您需要排序列表,可以使用python列表中的
.sort()
方法轻松完成

因此,在返回
results.sort()
之前,然后
返回results.sort()

或者您可以执行
返回已排序(结果)

要跳过列表中的0号,您可以将检查范围更改为
如果79

因此,您的最终代码如下所示:

def DegreeDays(val1):
    results = []
    for val in val1:
        if 79 < val < 96:
            results.append(96-val)


        elif 52 < val < 61:
            results.append(60-val)


    return sorted(results)

这应该可以解决问题

结果[0,16,7]是准确的,并且基于您的输入列表。 我已经为您添加了一些打印,以查看代码中发生了什么

def DegreeDays(val1):
    results = []
    for val in val1:
        if 79 < val < 97:
            print("number is {0} and in range (79-97)\n append {1} to results".format(val,96-val))
            results.append(96-val)


        elif 52 < val < 61:
            print("number is {0} and in range (52-61)\n append {1} to results".format(val,60-val))
            results.append(60-val)


    return results

print (DegreeDays([67, 78, 96, 80, 75, 62, 53]))

这是行不通的。列表是可变的,
list.sort()。。。他希望来自elif分支的值位于主if中的值之前branch@Azsgy你看到的时候我正在修改和更新答案,现在就修好了
def DegreeDays(val1):
    results = []
    for val in val1:
        if 79 < val < 97:
            print("number is {0} and in range (79-97)\n append {1} to results".format(val,96-val))
            results.append(96-val)


        elif 52 < val < 61:
            print("number is {0} and in range (52-61)\n append {1} to results".format(val,60-val))
            results.append(60-val)


    return results

print (DegreeDays([67, 78, 96, 80, 75, 62, 53]))
number is 96 and in range (79-97)
 append 0 to results
number is 80 and in range (79-97)
 append 16 to results
number is 53 and in range (52-61)
 append 7 to results
[0, 16, 7]