Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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忽略列表中两个项目之间的项目_Python - Fatal编程技术网

如何告诉python忽略列表中两个项目之间的项目

如何告诉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

我正在学习python,我在做一个练习任务时遇到了困难。该任务希望用户编写一个函数,用于查看列表并忽略出现在6和9之间的值。但是,对于不在6和9之间的所有其他项目,它会输出它们的总和

我试着用for循环和while循环来创建一个程序。但是,我被困在必须指定项目范围的部分。我知道我应该在for循环中使用while循环来解决这个问题

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,会发生什么情况?(另外,胡乱猜测问题希望排除大于或等于的数字