【问题标题】:How to run a function in loop over the chunks of a list?如何在列表的块上循环运行函数?
【发布时间】:2020-10-21 00:56:41
【问题描述】:

我有一个长度为 4700 的字符串类型列表。首先,我将列表分成大小为 1500 的相等块。所以现在,我有 4 个列表。

list_with_chunks = [[a,b,c,...],[f,g,h,....],[x,y,z,...],...,[l,m,n,...]]
new_list = []

def function():
 # dummy function
 return 2*x

我想要一个可以使用上述function() 并传递list_with_chunks 的第一个块并将结果附加到new_list 的函数,然后获取第二个块并将结果附加到new_list 从前一个的任何位置由于第一个块,附加停止,依此类推,直到我完成所有块的传递。

更新:期望的输出:

new_list = [2*a, 2*b, 2*c.....,2*z] # all the chunks in just one final list.

请帮忙,TIA!

【问题讨论】:

  • 显示所需的输出
  • @Umair 我已经更新了这个问题。请检查!
  • 所以如果list_with_chunks[["A","B"],["C","D"],["E","F"],["G","H"]],结果将是["AA","BB","CC","DD","EE","FF","GG","HH"]?
  • 4700 != n*1500 where n in Z
  • @ScottHunter 是的,完全正确。

标签: python list split list-comprehension chunks


【解决方案1】:

循环块,对所有块元素使用列表推导,并使用extend 将结果附加到新列表。

def function(new_list, list_of_lists):
    for l in list_of_lists:
        new_list.extend([2 * x for x in l])

function(new_list, list_with_chunks)
print(new_list)

【讨论】:

  • 谢谢。这对初学者真的很有帮助。
  • 如果我想在 list_with_chunks 内部的值上调用其他一些复杂的函数而不是简单的 2*x 怎么办?
  • some_complex_function(x) for x in l
猜你喜欢
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多