Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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
为什么这个for语句要附加两次?python_Python_If Statement_For Loop_Append_Sum - Fatal编程技术网

为什么这个for语句要附加两次?python

为什么这个for语句要附加两次?python,python,if-statement,for-loop,append,sum,Python,If Statement,For Loop,Append,Sum,为什么要附加两次数据 这是一个数字列表→ 值\u alpha?在该列表中,有某些部分被附加到→ 结果\u alpha因此结果\u alpha包含部分值\u alpha 我试图检查alpha\u sum>alpha\u b\u sum中的每个元素,如果是,则在原始序列(values\u alpha)中添加特定序列发生的位置(元素在results\u alpha)。如果没有,那么跳过它,因此使用pass语句。就像Noah1989所说的那样,这些值是迭代的,但从未使用过。 因为alpha中的两个值恰好

为什么要附加两次数据

这是一个数字列表→ <代码>值\u alpha?在该列表中,有某些部分被附加到→ <代码>结果\u alpha因此
结果\u alpha
包含部分
值\u alpha


我试图检查
alpha\u sum>alpha\u b\u sum
中的每个元素,如果是,则在原始序列(
values\u alpha
)中添加特定序列发生的位置(元素在
results\u alpha
)。如果没有,那么跳过它,因此使用
pass
语句。

就像Noah1989所说的那样,这些值是迭代的,但从未使用过。 因为alpha中的两个值恰好大于它们在alpha_b中的对应匹配,所以循环发生了两次

试试这个

alpha_sum = [2396, 780, 2022, 596]
alpha_b_sum = [2206, 828, 1962, 597]
results_alpha = [[145, 142, 142, 111, 121, 151, 111, 113, 121, 106, 67, 151, 57, 111, 106, 101, 111, 98, 142, 106, 83], [142, 106, 83, 69, 145, 121, 114], [69, 145, 121, 114, 57, 121, 111, 121, 151, 77, 121, 77, 101, 113, 142, 77, 113, 108, 83], [113, 108, 83, 77, 114, 101], [57, 106, 98, 101, 101, 108, 108, 77, 114, 106, 142, 57, 113, 67], [101, 121, 77, 121, 57, 142, 142, 114, 121]]
values_alpha= [145, 142, 142, 111, 121, 151, 111, 113, 121, 106, 67, 151, 57, 111, 106, 101, 111, 98, 142, 106, 83, 69, 145, 121, 114, 57, 121, 111, 121, 151, 77, 121, 77, 101, 113, 142, 77, 113, 108, 83, 77, 114, 101, 69, 151, 67, 57, 106, 98, 101, 101, 108, 108, 77, 114, 106, 142, 57, 113, 67, 77, 101, 121, 77, 121, 57, 142, 142, 114, 121]

for alpha, alpha_b in zip(alpha_sum,  alpha_b_sum):
    for i in range(len(values_alpha)):
        if alpha > alpha_b:  
            for element in results_alpha:
                length = len(element)
                if values_alpha[i:i+length] == element:
                    export.append('Alpha'+'\t'+'[%d, %d]' % (i, i+length-1)+'\n') 
                    #print '[%d,%d]' % (i, i+length-1)+'\n'
                else:
                    pass

print export
['Alpha\t[0, 20]\n', 'Alpha\t[18, 24]\n', 'Alpha\t[21, 39]\n', 'Alpha\t[37, 42]\n', 'Alpha\t[46, 59]\n', 'Alpha\t[61, 69]\n', 
 'Alpha\t[0, 20]\n', 'Alpha\t[18, 24]\n', 'Alpha\t[21, 39]\n', 'Alpha\t[37, 42]\n', 'Alpha\t[46, 59]\n', 'Alpha\t[61, 69]\n']

alpha
alpha_b
仅进行比较,但从未按说明使用。您是否尝试过使用调试器单步检查代码,以查看如何按顺序生成
导出
?我明白您的意思。alpha_sum是结果_alpha中每个元素的总和。我将把它添加到其中,我只想添加sum_alpha>sum_alpha\b的值。这是我最初的功能
>>> for i in range(len(values_alpha)):
...     for element in results_alpha:
...         length = len(element)
...         if values_alpha[i:i+length] == element:
...             export.append('Alpha'+'\t'+'[%d, %d]' % (i, i+length-1)+'\n')
...             #print '[%d,%d]' % (i, i+length-1)+'\n'
...         else:
...             pass
...
>>> print export
['Alpha\t[0, 20]\n', 'Alpha\t[18, 24]\n', 'Alpha\t[21, 39]\n', 'Alpha\t[37, 42]\n', 'Alpha\t[46, 59]\n', 'Alpha\t[61, 69]\n']