遍历具有不同元素的列表

时间:2019-02-25 22:47:08

标签: python

我有3个列表,其中包含比特币交易的输入,输出和值(价格)。根据交易的不同,输入或输出可能包含一个或多个元素(BTC地址),例如,在一项交易中,输出列表可能包含2个元素以及一个对应的地址。

我想以以下格式将这些内容写入文件:

TransactionID, Sender(input), Recipient(output), value

涉及多个发送方和多个接收方的事务应通过具有相同事务ID的多行进行。

我尝试使用标准的循环和zip_longest(见下文)都无济于事,并且在此问题上停留了一段时间,因此我们将不胜感激。下面的列表是示例交易,可能会有所不同。

    inputs = ['1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn']
    outputs = ['1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P', 
   '1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn', 
   '14Vx2RDjFjCLXCxrrqKEr6DsCwX5RZX7Jj', 
   '1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn']

    values = ['0.00000546', '0.00000671', '0.00001246', '0.00000146']


    if len(outputs) > len(inputs):
        for x, y in zip_longest(outputs, inputs, values): 
            file.write(transID, x y, z)


    elif len(inputs) > len(outputs):
        for x, y z in zip_longest(inputs, outputs, values): 
            file.write(transID, x, y , z)

1 个答案:

答案 0 :(得分:0)

我希望我正确理解了这个问题:

inputs = ['1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn']
outputs = ['1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P', 
   '1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn', 
   '14Vx2RDjFjCLXCxrrqKEr6DsCwX5RZX7Jj', 
   '1Pr75FNvtoWHeocNfc4zTQCfK5kMVakWcn']

values = ['0.00000546', '0.00000671', '0.00001246', '0.00000146']

if len(inputs)< len(outputs):
    root, branches = inputs[0], outputs
else:
    root, branches = outputs[0], inputs

transaction = [(root, branch,value) for branch,value in zip(branches, values)]

print(transaction)