ブロックチェーンに値を追加していく
ブロックチェーンは過去のデータを参照しつつ
新たなデータを追加していきます。
まずは一番最初のリストに数値1を入れます。
1 |
blockchain=[[1]] |
これでblockchainというリストに数値1が格納されます。
次にブロックチェーンっぽく値を追加していきます。
1 2 3 4 5 6 7 |
blockchain=[[1]] def add_value(value): blockchain.append([blockchain[-1],value]) print(blockchain) add_value(2) |
>>[[1], [[1], 2]]
もとの1はそのままで、カンマ以降は最初のブロックチェーンにあった1と
新たに追加された2が格納されました。
もう一つ値を追加します。
1 2 3 4 5 6 7 8 |
blockchain=[[1]] def add_value(value): blockchain.append([blockchain[-1],value]) print(blockchain) add_value(2) add_value(0.9) |
>>[[1], [[1], 2], [[[1], 2], 0.9]]
今度は3番目に0.9が追加されています。
わかりづらいので色分けカンマ別に縦表示にします。
[[1],
[[1], 2],
[[[1], 2], 0.9]]
同じ要領でもう一つ値を追加します。
1 2 3 4 5 6 7 8 9 |
blockchain=[[1]] def add_value(value): blockchain.append([blockchain[-1],value]) print(blockchain) add_value(2) add_value(0.9) add_value(10.89) |
>>>[[1], [[1], 2], [[[1], 2], 0.9], [[[[1], 2], 0.9], 10.89]]
ゴチャゴチャしてきましたね
カンマ別に縦表示にすると以下のようになります。
[[1],
[[1], 2],
[[[1], 2], 0.9],
[[[[1], 2], 0.9], 10.89]]
自作関数を2つに分けて
add_value()から別の自作関数
get_last_blockchain_value()を呼び出して
参照する過去の値と新規追加の値を別にする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
blockchain=[[1]] def get_last_blockchain_value(): return blockchain[-1] def add_value(transaction_amount): blockchain.append([get_last_blockchain_value(),transaction_amount]) add_value(2) add_value(0.9) add_value(10.89) print(blockchain) |
コードの最初にblockchain=[1]と定義してありますが
リストの最初の値が確定できない場合はblockhain=[]から始めたい
場合もあると思います。
その場合は以下のようにデフォルトを与える事でうまくいきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
blockchain=[] def get_last_blockchain_value(): return blockchain[-1] def add_value(transaction_amount,last_transaction=[1]): blockchain.append([last_transaction,transaction_amount]) add_value(2) add_value(0.9,get_last_blockchain_value()) add_value(10.89,get_last_blockchain_value()) print(blockchain) |
コメントを残す