簡體   English   中英

遍歷python中的列表列表

[英]iterate over a list of list in python

我有以下類型的列表。 我想使用我編寫的函數對該列表進行規范化。 例如-normalize()。 我想將第二個最里面的列表傳遞給normalize()。 我想一次做一張清單。

 [[['179.0', '77.0'],
  ['186.0', '93.0'],
  ['175.0', '72.0'],
  ['195.0', '68.0']],
 [['178.0', '76.0'],
  ['185.0', '93.0'],
  ['164.0', '91.0'],
  ['155.0', '117.0']],
  ['161.0', '127.0'],
  ['191.0', '200.0'],
  ['190.0', '241.0'],
  ['194.0', '68.0']],
 [['176.0', '77.0'],
  ['183.0', '93.0'],
  ['163.0', '91.0'],
  ['155.0', '117.0']]......]

我嘗試的代碼將整個列表標准化。 我想按行進行。 我嘗試了以下

normalized_data = [normalize3(data) for data in load_pose_data()] 

我將不勝感激任何幫助。 謝謝

您可以使用列表理解來達到目的。

例:

# example function that add element to a list
def f(x):
    return x+[10]

outer_list = [[1,2],[3,4],[5,6]]

# this calls the function on each element
after = [ f(n) for n in outer_list ]

after
[[1, 2, 10], [3, 4, 10], [5, 6, 10]]

除了@chenshuk的答案外,請使用lambda

# example function that add element to a list
f=lambda x: x+[10]
outer_list = [[1,2],[3,4],[5,6]]
# this calls the function on each element
after = [ f(n) for n in outer_list ]

使用列表理解。

或做map

因此,而不是(列表理解):

after = [ f(n) for n in outer_list ]

做:

after = list(map(f,outer_list))

兩種情況:

print(after)

方法是:

[[1, 2, 10], [3, 4, 10], [5, 6, 10]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM