ラベルのリストとデータは次のとおりです。
['id'、'Version'、'chip_name'、'xversion'、'device'、'opt_param'、'place_effort'] [1、1.0、u'virtex2'、u'xilinx11.5'、u'xc5vlx50'、u'Speed'、u'High']
それらをコンソールに印刷する必要があります。このために、リストを繰り返し処理し、タブ('\ t')を使用して各要素を出力します。
しかし、残念ながら、結果はそれほどきれいではありません。
データ1の数と列7の数 idバージョンchip_namexversionデバイスopt_paramplace_effort 1 1.0 virtex2xilinx11.5xc5vlx50高速高速
ラベルとデータの文字列の長さは非常に可変であり、適切に配置されていません。
Pythonでこの問題の解決策はありますか?
追加した
Mike DeSimoneの答えに喜んで、私は自分の目的に使用できるきれいなプリンターを作ることができました。valueResultsは重複のリストです。
labels = queryResult.names
valueResults = queryResult.result
# get the maximum width
allData = valueResults
allData.insert(0,labels)
transpose = zip(*valueResults) # remove the sequence as a parameter
#print transpose
for value in transpose:
# value is integer/float/unicode/str, so make it length of str
newValue = [len(str(i)) for i in value]
columnWidth = max(newValue)
columnWidths.append(columnWidth)
dividers.append('-' * columnWidth)
dblDividers.append('=' * columnWidth)
label = value[0]
paddedLabels.append(label.center(columnWidth))
paddedString = ""
for values in valueResults[1:]:
paddedValue = []
for i, value in enumerate(values):
svalue = str(value)
columnWidth = columnWidths[i]
paddedValue.append(svalue.center(columnWidth))
paddedString += '| ' + ' | '.join(paddedValue) + ' |' + '\n'
string += '+-' + '-+-'.join(dividers) + '-+' + '\n'
string += '| ' + ' | '.join(paddedLabels) + ' |' + '\n'
string += '+=' + '=+='.join(dblDividers) + '=+' + '\n'
string += paddedString
string += '+-' + '-+-'.join(dividers) + '-+' + '\n'
そしてこれが結果です。
+ ---- + --------- + ----------- + ------------ + --------- -+ ----------- + -------------- + | id | バージョン| chip_name | xversion | デバイス| opt_param | place_effort | + ==== + ========= + =========== + ============ + ========= = + =========== + ============== + | 1 | 1.0 | virtex2 | xilinx11.5 | xc5vlx50 | スピード| 高| | 2 | 1.0 | virtex2 | xilinx11.5 | xc5vlx50 | スピード| 高| + ---- + --------- + ----------- + ------------ + --------- -+ ----------- + -------------- +
助けてくれてありがとう。