Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_For Loop - Fatal编程技术网

用于循环列表的Python

用于循环列表的Python,python,list,for-loop,Python,List,For Loop,我有一个初级Python问题。我想知道是否有可能从列表中获取for循环的结果,然后将其再次转换为列表。我有这样的代码 for a in mylist: result = q.myfunction(a) print q, a 我希望此列表的结果可以用于在数据库中创建表。我正在Windows7上使用Python2.7。我已经阅读了python上for循环的文档,以及有关堆栈交换的问题,但我仍然感到困惑 这就是你想要的吗 [q.myfunction(a) for a in mylis

我有一个初级Python问题。我想知道是否有可能从列表中获取for循环的结果,然后将其再次转换为列表。我有这样的代码

for a in mylist:
    result = q.myfunction(a)
    print q, a
我希望此列表的结果可以用于在数据库中创建表。我正在Windows7上使用Python2.7。我已经阅读了python上for循环的文档,以及有关堆栈交换的问题,但我仍然感到困惑

这就是你想要的吗

[q.myfunction(a) for a in mylist]
这叫做列表理解。

这就是你想要的吗

[q.myfunction(a) for a in mylist]
这叫做列表理解。

当然

只需
打印
将内容输出显然不会将它们附加到列表中。但是调用列表上的
append
方法就可以了,如本教程部分所述。例如:

mynewlist = []
for a in mylist:
    result = q.myfunction(a)
    print q, a
    mynewlist.append(result)
如果您只想创建一个新的列表,而没有其他副作用,a会使它更简单。此代码:

mynewlist = [q.myfunction(a) for a in mylist]
…执行与上述相同的操作,但没有打印

确定

只需
打印
将内容输出显然不会将它们附加到列表中。但是调用列表上的
append
方法就可以了,如本教程部分所述。例如:

mynewlist = []
for a in mylist:
    result = q.myfunction(a)
    print q, a
    mynewlist.append(result)
如果您只想创建一个新的列表,而没有其他副作用,a会使它更简单。此代码:

mynewlist = [q.myfunction(a) for a in mylist]

…执行与上述相同的操作,但不使用
打印

如果您习惯于使用for循环,则可以执行以下操作:

results = []
for a in mylist:
    result = q.myfunction(a)
    results.append(result)
然而,在python中这样做的惯用方法是使用所谓的列表理解。列表理解是从其他列表的元素生成新列表的一种方法。例如,以下内容的效果与上述For循环的效果完全相同

results = [q.myfunction(a) for a in mylist]

如果您习惯于使用for循环,则可以执行以下操作:

results = []
for a in mylist:
    result = q.myfunction(a)
    results.append(result)
然而,在python中这样做的惯用方法是使用所谓的列表理解。列表理解是从其他列表的元素生成新列表的一种方法。例如,以下内容的效果与上述For循环的效果完全相同

results = [q.myfunction(a) for a in mylist]

for循环的作用与列表理解不同。循环收集
(q,a)
,理解收集
(result,a)
@Dunes:Ah,好观点。显然
(q,a)
不是很有用,除非调用
q.myfunction
只是为了产生副作用(在这种情况下,为什么要将结果存储在
result
?);已编辑。for循环的作用与列表理解不同。循环收集
(q,a)
,理解收集
(result,a)
@Dunes:Ah,好观点。显然
(q,a)
不是很有用,除非调用
q.myfunction
只是为了产生副作用(在这种情况下,为什么要将结果存储在
result
?);编辑。