我编写了以下代码:
initial_list = [item1, item2, item3, item4, ...]
lists = [[list1], [list2], [list3], [list4], ..., [list(n-1)], [list(n)]]
# The number of elements in the both lists might chance
while len(initial_list) > 0:
for list in lists:
if len(initial_list) == 0:
break
item = initial_list.pop(0)
list.append(item)
我想知道是否有更好/更简单/更简短的方法来编写上面的代码?如果是,请不要使用困难的函数(等),因为我还是一个初学者,不会理解它。你知道吗
我相信您正在尝试将
initial_list
中的项附加到lists
中的嵌套列表值,直到使用了所有值initial_list
,如果要附加的嵌套列表少于初始值,则从一开始就循环使用lists
。你知道吗使用^{} 将嵌套列表与
initial_list
项配对:这里的^{} function 确保使用来自
initial_list
的所有值;zip()
在最短列表处停止,该列表在这里始终是initial_lists
。你知道吗演示一个包含10个值的初始列表(整数
0
到9
)和一个包含4个空子列表的嵌套列表:不使用循环将需要保留一个计数器并附加到
lists[count % len(lists)]
。计数器可以通过enumerate()
函数生成:您可以使用:
…而不是:
另外,list.pop(0)速度很慢。也许你在找一个http://docs.python.org/3/library/collections.html#collections.deque?它可以让你迅速地从两端取出东西,但你将无法方便地访问(如)中间了。你知道吗
相关问题 更多 >
编程相关推荐