2
私はいくつかのコードがありますが、私はそれが本当に非効率であることを心配しています。 dictのリストを一種のバッファにチャンク化/バッチ化するよりパフォーマンスのよい方法がありますか?この例では効率的なリストコピー
rowA = {1:"a",2:"b",3:"c"} # Random dict
rowB = {4:"d",5:"e",6:"f"} # Random dict
rowC = {7:"g",8:"h",9:"i"} # Random dict
rowD = {0:"j",1:"k",2:"l"} # Random dict
rows = [rowA ,rowB ,rowC ,rowD ] # Add to a List
row_chunk = [] # Empty List for buffer/cache
row_count = 0 # Counter for buffer size
for row in rows: # Iterate over the list
row_chunk.append(list(row.values())) # Append the values from the dictionary
row_count += 1 # Increment the buffer size
if row_count % 2 == 0: # Check if the buffer reached level
print("We have {0} dictionaries".format(len(row_chunk)))
row_chunk = [] # Reset the list
、私は万のチャンクを持つことを期待して行は[]これは、ように見えるん述べたよう1,000,000エントリ
を持つことになり、生産2.の塊で番号のリストを破ります特にリストに追加してリセットすると、時間がかかり、効率が悪くなります。
もっと良いアプローチをアドバイスできますか?二つに、リストAを分割する
なぜこのバッファを使用していますか? – BrenBarn
'list(row.values()) 'を使用する特別な理由は何ですか? – Copperfield
@BrenBarn - 特に理由はありません。これは、基本的にデータベースへの書き込みをバッファリングすることです。私は一度に行全体を提出しようとしていない限り、どのようにそれを分解するか気にしない。 – Exie