リスト内の行数とリストのタプル内の列数が一定ではないタプルのリストがあります。すなわち
list = [(a1,b1, …z1), (a2,b2, …, z2),…. ,(am,bm, … , zm )]
. これは SQL の結果と比較できます。SQL の列数が変化すると、タプルのリストでも列数が変化します。
リスト内のすべてのタプルの各要素を反復処理し、値に対していくつかのチェックを実行し、それを変換して、変更された値をタプルの新しいリストとして返す必要があります。
すなわち
list_value = [('name1', 1234, 'address1' ), ('name2', 5678, 'address2'), ('name3', 1011, 'addre"ss3')]
各値にアクセスして、値に二重引用符が含まれているかどうかを確認し、二重引用符を含む文字列を二重引用符で囲む必要があります (これはチェックの 1 つです)。変換が返されるはずです
list_value = [('name1', 1234, 'address1' ), ('name2', 5678, 'address2'), ('name3', 1011, '"addre"ss3"')]
私にとって最も簡単なアプローチは、これを行うことです:
mod_val = [transform(row) for row in list_value]
def transform(row):
mod_list=[]
while index < len(row):
... if isinstance(row[index],basestring):
... if '"' in row[index]:
... mod_list.append('"'+row[index]+'"')
... else:
... mod_list.append(row[index])
... index = index+1
... return mod_list
リスト内包表記を使用してコードを簡潔にする方法はありますか?