如何告诉python忽略列表中两个项目之间的项目
我正在学习python,我在做一个练习任务时遇到了困难。该任务希望用户编写一个函数,用于查看列表并忽略出现在6和9之间的值。但是,对于不在6和9之间的所有其他项目,它会输出它们的总和 我试着用for循环和while循环来创建一个程序。但是,我被困在必须指定项目范围的部分。我知道我应该在for循环中使用while循环来解决这个问题如何告诉python忽略列表中两个项目之间的项目,python,Python,我正在学习python,我在做一个练习任务时遇到了困难。该任务希望用户编写一个函数,用于查看列表并忽略出现在6和9之间的值。但是,对于不在6和9之间的所有其他项目,它会输出它们的总和 我试着用for循环和while循环来创建一个程序。但是,我被困在必须指定项目范围的部分。我知道我应该在for循环中使用while循环来解决这个问题 def addoutside(arrg): num1=0 对于arrg中的num: 而num!=6: num1=num1+num 而num==6: 对于范围内的num2
def addoutside(arrg):
num1=0
对于arrg中的num:
而num!=6:
num1=num1+num
而num==6:
对于范围内的num2(num):
如果。。。。。
外部添加(4,5,6,7,8,9,9)
外部添加(4,5,6,7,8,9,9,10)
addoutside(4,5,6,7,8,9,9,6,5,4,3)
addoutside(1,2,3,6,7,8,9,1,2,3,6,7,9)
编辑:通过提供一些输出示例,我已经阐明了我希望函数如何运行
Expected output: 18 <---- from the 4+5+9
Expected output: 28 <---- from the 4+5+9+10
Expected output: 36 <---- from the 4+5+9+6+5+4+3
Expected output: 12 <---_ from the 1+2+3+1+2+3
预期输出:18检查一下,我写了一些简短的评论,我想对你来说已经足够清楚了
def addoutside(a):
b=列表(a)
lb=len(b)
检查=错误
对于范围内的i(磅):
如果检查:
打破
elif b[i]==6:
对于范围(i,lb)内的j:#此循环用于移除6到9之间的所有元素,包括它们
b、 移除(b[j])#移除6
而b[j]=9:
b、 移除(b[j])#移除6和9之间的元件
如果b[j]==9:
检查=正确
b、 移除(b[j])#移除9
打破
其他:
通过
印刷品(b)
回报总额(b)
b=[4,5,6,7,8,9,9]
打印(添加外部(b))
印刷品(b)
输出:
[4, 5, 9]
18
[4, 5, 6, 7, 8, 9, 9]
看看这个,我写了一些简短的评论,我想对你来说已经足够清楚了
def addoutside(a):
b=列表(a)
lb=len(b)
检查=错误
对于范围内的i(磅):
如果检查:
打破
elif b[i]==6:
对于范围(i,lb)内的j:#此循环用于移除6到9之间的所有元素,包括它们
b、 移除(b[j])#移除6
而b[j]=9:
b、 移除(b[j])#移除6和9之间的元件
如果b[j]==9:
检查=正确
b、 移除(b[j])#移除9
打破
其他:
通过
印刷品(b)
回报总额(b)
b=[4,5,6,7,8,9,9]
打印(添加外部(b))
印刷品(b)
输出:
[4, 5, 9]
18
[4, 5, 6, 7, 8, 9, 9]
这里有一个方法:
创建两个累计金额,一个临时金额和一个最终金额
当序列看到6时,临时值将保留值。如果序列从未看到9,它将加回最终的累积和
当它看到数字6
时,创建一个标志,这样我们就知道我们输入了这个序列
在看到数字9时重置标志,并将临时总和设置为0
重复
例如:
def addoutside(arrg, from_no=6, to_no=9):
has_seen_from = False #has not seen a 6 yet
confirmed_sum = 0 # final sum
temp_sum = 0 # temporary sum
for num in arrg:
if num==from_no:
has_seen_from = True
elif num==to_no and has_seen_from:
has_seen_from=False #reset
temp_sum = 0 #zero-out this value
continue #new iteration so the 9 won't count in the code below
if has_seen_from:
temp_sum+= num ## add to temp
else:
confirmed_sum+=num
confirmed_sum += temp_sum ## add temporary to final because it never saw a 9 after a 6
return confirmed_sum
addoutside([4,5,6,7,8,9,9])
Out[1] 18
这里有一个方法:
创建两个累计金额,一个临时金额和一个最终金额
当序列看到6时,临时值将保留值。如果序列从未看到9,它将加回最终的累积和
当它看到数字6
时,创建一个标志,这样我们就知道我们输入了这个序列
在看到数字9时重置标志,并将临时总和设置为0
重复
例如:
def addoutside(arrg, from_no=6, to_no=9):
has_seen_from = False #has not seen a 6 yet
confirmed_sum = 0 # final sum
temp_sum = 0 # temporary sum
for num in arrg:
if num==from_no:
has_seen_from = True
elif num==to_no and has_seen_from:
has_seen_from=False #reset
temp_sum = 0 #zero-out this value
continue #new iteration so the 9 won't count in the code below
if has_seen_from:
temp_sum+= num ## add to temp
else:
confirmed_sum+=num
confirmed_sum += temp_sum ## add temporary to final because it never saw a 9 after a 6
return confirmed_sum
addoutside([4,5,6,7,8,9,9])
Out[1] 18
我想这是一个很好的解决方案,它在6之后跟踪sum,当它看到9时,从total中减去sum
但是当它看到新的6时,它会在6之后重置总和,我不知道你是不是有意的?如果没有,您可以添加一个附加条件if not seen_six和num==6
,以重置_six之后的总和
希望这有帮助
arr=[4,5,6,7,8,9,9]
见六=假
总数=0
六后求和=0
对于arr中的num:
总数+=num
六次之后的总和+=num
如果num==6:
看见了吗
六次之后的总和=num
elif seen和num==9:
总计-=六次之后的总和
六后求和=0
见六=假
打印(总计)
我想这是一个很好的解决方案,它在6之后跟踪sum,在看到9时从total中减去sum
但是当它看到新的6时,它会在6之后重置总和,我不知道你是不是有意的?如果没有,您可以添加一个附加条件if not seen_six和num==6
,以重置_six之后的总和
希望这有帮助
arr=[4,5,6,7,8,9,9]
见六=假
总数=0
六后求和=0
对于arr中的num:
总数+=num
六次之后的总和+=num
如果num==6:
看见了吗
六次之后的总和=num
elif seen和num==9:
总计-=六次之后的总和
六后求和=0
见六=假
打印(总计)
你的问题不够清楚,因为你说排除6和9。你怎么还说预期产量应该是18?如果不包括6和9;我想这就是你想要解决的问题:
def addoutside(arg):
sum_arg = 0;
for num in arg:
if num >= 6 and num <= 9:
pass
else:
sum_arg += num
return sum_arg
list_of_num = [4,5,6,7,8,9,9,6,7,8,9];
print(addoutside(list_of_num))
def addoutside(arg):
sum_arg=0;
对于参数中的num:
如果num>=6和num你的问题不够清楚,因为你说排除6和9。你怎么还说预期产量应该是18?如果不包括6和9;我想这就是你想要解决的问题:
def addoutside(arg):
sum_arg = 0;
for num in arg:
if num >= 6 and num <= 9:
pass
else:
sum_arg += num
return sum_arg
list_of_num = [4,5,6,7,8,9,9,6,7,8,9];
print(addoutside(list_of_num))
def addoutside(arg):
sum_arg=0;
对于参数中的num:
如果num>=6且num(也可以猜测问题希望您排除大于或等于6且小于或等于9的数字),则不应排除最后的9。我想这个问题还不清楚。当8显示预期输出为18时,我想我已经说清楚了。我的错,我的意思是包括在内。不用担心,我想知道如何解决这个问题?@Ved。你能不能再举几个例子来更新一下?另外,如果在任何一点上6后面都没有9,会发生什么情况?(另外,胡乱猜测问题希望排除大于或等于的数字