嗨,我是python的新手,有一个我想在for循环外使用的变量,代码如下:
positive_slopes=[[rows[p - q][q]
for q in range(max(p-column_length+1,0), min(p+1, row_length))]
for p in range(column_length + row_length - 1)]
在这种情况下,我想获取[p-q]和[q]的所有值,但是我真的不知道如何操作此代码,当我尝试更改某些内容时,它实际上会中断。
我尝试使用普通的for
循环,但结果与上面的代码不同。我尝试使用的for
循环代码是:
for p in range(column_length + row_length - 1):
for q in range(max(p-column_length+1,0), min(p+1, row_length)):
positive_slopes.append(rows[p - q][q])
这与列表理解代码给出的结果并不完全相同。输出为:
['e', 'a', 'a', 'g', 'l', 'h', 'r', 'o', 'l', 'a', 'i', 'h', 'h', 'e', 'e', 'i', 'a', 'e', 'l', 'h', 'h', 'h', 'i', 'y', 'l', 'o', 'o', 'h', 'l', 'a', 'o', 'l', 'a', 'h', 'h', 'e', 'y', 'o', 'u', 'a', 'l', 'i', 'y', 'l', 'a', 'u', 'l', 'h', 'o']
列表理解为我提供了这一点:
[['e'], ['a', 'a'], ['g', 'l', 'h'], ['r', 'o', 'l', 'a'], ['i', 'h', 'h', 'e', 'e'], ['i', 'a', 'e', 'l', 'h', 'h'], ['h', 'i', 'y', 'l', 'o', 'o', 'h'], ['l', 'a', 'o', 'l', 'a', 'h'], ['h', 'e', 'y', 'o', 'u'], ['a', 'l', 'i', 'y'], ['l', 'a', 'u'], ['l', 'h'], ['o']]
两个输出的元素相同,但是我希望for循环像列表理解一样对字母进行分组。我在for
循环中缺少什么给我相同的输出。任何帮助将不胜感激!
答案 0 :(得分:2)
您编辑的代码应类似于:
for p in range(column_length + row_length - 1):
tempList = []
for q in range(max(p-column_length+1,0), min(p+1, row_length)):
tempList.append(rows[p - q][q])
positive_slopes.append(tempList)