Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 从for循环中获取变量?_Python_Python 3.x - Fatal编程技术网

Python 从for循环中获取变量?

Python 从for循环中获取变量?,python,python-3.x,Python,Python 3.x,您好,我是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]的所有值,但我真的不知道如何操作这段代码,当

您好,我是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 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
循环中,为了给我相同的输出,我缺少了什么。任何帮助都将不胜感激

您编辑的代码应该类似于:

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)

您编辑的代码应类似于:

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)

(p-q)的哪个值?对于循环的每次迭代,它们都是不同的。你说的“获取价值”是什么意思?你想用它们做什么?请澄清你的问题。另外,如果你想在这里做更多的事情,你应该使用普通的
来进行
循环,而不是列表理解。另一件事,你所问的在列表理解中是可能的,但它看起来很难看,而且没有条理。提示:您可以运行相同的命令,只需将
行[p-q][q]
替换为
p-q
。编辑问题!“对不起,刚才的含糊不清。是的,”SayandipDutta说,“当涉及到列表理解时,我正在旋转我的头。”。因此,我尝试将其转换为
for
循环。但是,它不会给我同样的结果。你能帮我个忙吗?(p-q)的值是多少?对于循环的每次迭代,它们都是不同的。你说的“获取价值”是什么意思?你想用它们做什么?请澄清你的问题。另外,如果你想在这里做更多的事情,你应该使用普通的
来进行
循环,而不是列表理解。另一件事,你所问的在列表理解中是可能的,但它看起来很难看,而且没有条理。提示:您可以运行相同的命令,只需将
行[p-q][q]
替换为
p-q
。编辑问题!“对不起,刚才的含糊不清。是的,”SayandipDutta说,“当涉及到列表理解时,我正在旋转我的头。”。因此,我尝试将其转换为
for
循环。但是,它不会给我同样的结果。你能帮我吗?