我有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)
答案 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)