在每个 运行 之后迭代函数更改参数
Iterate function changing parameter after each run
我写了一个代码,它有一个列表和一个起点,但是如果没有给出起点,我希望它从 0 开始。我遇到的问题是我希望它从头开始迭代( 0) 到最后 (len(a_list)-1),但是我不知道如何每次都开始增加一个,直到它遍历所有内容。
这是一个蹩脚的小例子:
def test(a_list, start = 0):
final = []
for i in a_list[start]:
final.append(i)
return final
print (test([[1,2,3,4],[2,3,4]]))
这输出:[1, 2, 3, 4]
而我希望它输出 [1, 2, 3, 4, 2, 3, 4]
在不更改 print (test([[1,2,3,4],[2,3,4]]))
的情况下,假设没有给出起点,我将如何实现这一目标。
谢谢
无需跟踪列表中项目的索引。您只需遍历项目本身。但是,在这种情况下,您希望使用 +
连接列表而不是 append
将它们连接在一起。
def test(list_of_lists):
final = []
for L in list_of_lists:
final += L
return final
如果您需要从特定索引开始,您可以对列表进行切片:
def test(list_of_lists, start = 0):
final = []
for L in list_of_lists[start:]:
final += L
return final
还有several succinct ways to concatenate a list of lists这样的,包括列表理解,reduce
,和itertools.chain.from_iterable
。
print ([item for L in list_of_lists for item in L])
print (reduce(list.__add__, list_of_lists, []))
from itertools import chain
print (list(chain.from_iterable(list_of_lists))
遍历整个列表。你不用担心。
final = []
for i in a_list:
final.append(i)
或者,如果您想从 start
开始,请执行以下操作:
final = []
for i in range(start, len(a_list - 1):
final.append(i)
这将从列表的开头到结尾添加值。
我写了一个代码,它有一个列表和一个起点,但是如果没有给出起点,我希望它从 0 开始。我遇到的问题是我希望它从头开始迭代( 0) 到最后 (len(a_list)-1),但是我不知道如何每次都开始增加一个,直到它遍历所有内容。
这是一个蹩脚的小例子:
def test(a_list, start = 0):
final = []
for i in a_list[start]:
final.append(i)
return final
print (test([[1,2,3,4],[2,3,4]]))
这输出:[1, 2, 3, 4]
而我希望它输出 [1, 2, 3, 4, 2, 3, 4]
在不更改 print (test([[1,2,3,4],[2,3,4]]))
的情况下,假设没有给出起点,我将如何实现这一目标。
谢谢
无需跟踪列表中项目的索引。您只需遍历项目本身。但是,在这种情况下,您希望使用 +
连接列表而不是 append
将它们连接在一起。
def test(list_of_lists):
final = []
for L in list_of_lists:
final += L
return final
如果您需要从特定索引开始,您可以对列表进行切片:
def test(list_of_lists, start = 0):
final = []
for L in list_of_lists[start:]:
final += L
return final
还有several succinct ways to concatenate a list of lists这样的,包括列表理解,reduce
,和itertools.chain.from_iterable
。
print ([item for L in list_of_lists for item in L])
print (reduce(list.__add__, list_of_lists, []))
from itertools import chain
print (list(chain.from_iterable(list_of_lists))
遍历整个列表。你不用担心。
final = []
for i in a_list:
final.append(i)
或者,如果您想从 start
开始,请执行以下操作:
final = []
for i in range(start, len(a_list - 1):
final.append(i)
这将从列表的开头到结尾添加值。