簡體   English   中英

如何同時遍歷列表?

[英]How do I iterate through a list simultaneously?

我有一個樣本,它以 [p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p12 p13 p14 p15 p16] 形式給出值

print(sample)

    [[ 1.43945312  4.29003906  9.55566406 ... 61.11035156 66.15917969
      69.03417969]
     [ 2.98242188  4.29003906  9.55566406 ... 61.11035156 66.15917969
      69.03417969]
     [ 1.43945312  6.17675781  9.55566406 ... 61.11035156 66.15917969
      69.03417969]
     ...
     [ 1.92480469  5.76220703  9.69482422 ... 61.23486328 66.62939453
      69.31982422]
     [ 1.92480469  5.76220703  9.69482422 ... 61.23486328 65.97900391
      68.15966797]
     [ 1.78027344  4.68701172 10.25439453 ... 62.68505859 66.62939453
      68.15966797]]

我想使用 function 遍歷這個示例,它接受 16 個輸入並給出一個值作為 output。

我怎樣才能做到這一點? 例如,采用 function 模型(p1, p2, p3, p4, p5, p6, .... p16),它需要 16 個輸入

model(1.43945312, 4.29003906, 9.55566406, ... 61.11035156, 66.15917969, 69.03417969)

(這是第一個樣品)然后保存output

然后它將移動到第二個樣本並執行

model(2.98242188, 4.29003906, 9.55566406, ... 61.11035156, 66.15917969, 69.03417969)

並保存 output.. 依此類推。

這有意義嗎? 道歉,因為我是 Python 的新手,還不知道確切的術語我該怎么做

使用 for 循環和可迭代解包:

def model(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16):
    pass # do something

output = []
for sample in data: # iterate over samples
    print(len(sample))
    result = model(*sample)
    output.append(result)

@Programmer 的答案很好 有人認為您可能想要使用 *args 在 function 聲明中。 這使您可以擁有可變數量的 arguments 並將它們作為列表引用,因此您無需指定所有 16 個 arguments。

def method(*args):
    p1 = args[0]
    ...
    p16 = args[15]
   # Or whatever you want to do with them. 

但是,如果您沒有為該方法提供足夠的 arguments,這可能會導致IndexError 這取決於您想用 function 做什么。

暫無
暫無

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

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