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]