我正在尝试python,基本上是新手。我想要做的是将所有生成的列表保存或存储到一个列表中,然后再访问该列表。该列表是从循环生成的。
基本上我的代码是:
def doSomething():
list = []
....some parsing procedures....
......
...here needed texts are extracted...
...so I am looping to extract all texts I need...
for a in something:
list.append(a)
首次执行后,列表现已填充... 然后程序进入下一页,它基本上是相同的结构,然后再次调用doSomething函数。 我希望现在很清楚..
假设第一,第二和第三个循环等产生了这个:
1st loop: [1,2,3]
2nd loop: [4,5,6]
3rd loop: [7,8,9]
我想将这些列表保存到一个列表中并稍后访问它,以便:
alllist = [1,2,3,4,5,6,7,8,9]
我怎样才能做到这一点?
答案 0 :(得分:0)
Identation在python中很重要。您的代码没有正确的缩进。其他编程语言使用{和}来分组语句,而Python使用空格。
for a in something:
list.append(a)
for b in something2:
list.append(b)
但是,我建议直接使用某事+某事2 。
答案 1 :(得分:0)
这应该有所帮助:
lst = [1, 2, 3]
lst.extend([4, 5, 6])
lst.extend([7, 8, 9])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
答案 2 :(得分:0)
您可以将for循环中的前三个列表存储在变量中,然后可以为每个列表执行for循环,并将其附加到新列表以获取您正在寻找的输出。
first_list = [1,2,3]
second_list = [4,5,6]
third_list = [7,8,9]
new_list = []
for number in first_list:
new_list.append(number)
for number in second_list:
new_list.append(number)
for number in third_list:
new_list.append(number)
print(new_list)
new_list中的输出是:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
答案 3 :(得分:0)
您可以使用extend方法:
def doSomething(something):
list = []
for a in something:
list.append(a)
# ....this loop for some definite number...
return list
allist = []
allist.extend(doSomething(smt1))
allist.extend(doSomething(smt2))
allist.extend(doSomething(smt3))
答案 4 :(得分:0)
你真正需要的(我认为)是其他语言所谓的“静态”。有几种解决方案,包括写一堂课。我经常使用闭包。
在此示例中,第一个名为initial
的函数设置了四个属性localList
(不调用变量list
,它掩盖了list
class),start
和两个内部函数。返回对这些函数的引用(未调用),并且每个函数都在其上下文中保留<{1}} 。
需要使用localList
(需要Python 3)来指示nonlocal
的上下文。
这样做的好处是实际的机制是封装的,我们没有全局变量。如果您在程序中的其他地方有变量名为start
,localList
,start
和inner
,则它们不会发生冲突。
inner_get
给出:
def initial():
localList = []
start = 1
def inner():
nonlocal start
for a in range(start, start + 3):
localList.append(a)
start += 3
def inner_get():
return localList
return inner, inner_get
# get the function references
doSomething, getIt = initial()
for i in range(3):
doSomething()
# get the list
print(getIt())
# or
alllist = getIt()
是的,它有点复杂,但它是一种有用的技术,如果你可以的话。
答案 5 :(得分:0)
我弄清楚了,我必须创建一个在循环期间存储所有列表的函数:
def funcThatStoreList(args, result =[]):
result.append(args)
答案 6 :(得分:0)
you might pass the values to another function like:
def newFunction(args, results =[]):
result.append(args)
return result
then call the function that generates list:
doSomething()
newFunction(doSomething())
if we print newFunction(doSomething()), we will see the appended lists from doSomething function