2016-12-09 1 views
-1

私に最も外側の値(key_n)と最も内側の値を与え、単一の文字列にアタッチしてからすべての単一の文字列が組み合わされた文字列です(うまくいけば意味があります)。「 t」の文字列を与える実行関数は、毎回異なって見える

big_milon = {'key_1' : {'{key1':'dasdadsad', 'key2': 'hat', 'key3':'cat'}, 
     'key_2' : {'key1':'fat', 'key2': 'pat','key3':'lat'}} 

def string_getter(): 
    prop_string = '' 
    full_list = '' 
    for i,j in big_milon.items(): 
     prop_list = [] 
     itemcode = i 
     prop = list(j.values()) 
     for l in range(len(prop)): 
      prop_string = prop_string +'\t'+ "{" + prop[l] + "}" 
     full_list = full_list + itemcode + prop_string + '\n' 
     prop_string = '' 
    return full_list 

print(string_getter()) 

それは、それは

例えば二つのタブやタブなしのようになります。値の間に一つのタブがあるように見える、それの代わりに、時にはことを除いて、正常に動作します

print(string_getter()) 

enter image description here

+0

タブの印刷方法が気に入らず、すべてのコードを無視できますか?どのようにそれを見たいですか?それはtabstop = 4のように見えます。 –

+1

これはバグではありません - これはタブの動作です(カーソルをNの次の乗算に移動する)。一貫した集計が必要な場合は、文字列フォーマットオプションまたは専用ライブラリ(例: 'tabulate'。 –

+2

[Python - ヘッダーを含む水平テーブルとして辞書を印刷する]の可能な複製(http://stackoverflow.com/questions/17330139/python-printing-a-dictionary-as-a-horizo​​ntal-table-with-headers) –

答えて

3

\tは間隔のためではない、それが集計のためのものです。 \t(またはtabulation)は、デフォルトで8の倍数の次の次の列にスキップします(実際には1でカウントを開始すると+1)。あなたが列1-8の場合、\tは9桁目にスキップします。9-16の場合は17などにスキップします。

少なくとも、これは古い意味です。機械式タイプライターとテレタイプから。 (さらにいくつかの余裕があります:いくつかの機械式タイプライターのタブ列の許可設定)ドットが空間である

The dots are spaces, the arrows are the result of tab characters, tabs size set to 8は、矢印はタブ文字の結果である、タブサイズは8

現代のコンピュータに設定し、タブのサイズの再定義を可能にします。頻繁にタブ(\t)をスペースに自動的に変更することができます。

一般的に、これは悪夢にタブを使用しました。タブ(例:プログラム)を使ってテキストを書くことはできますが、誰かに送ると、そのようにテキストが異なって見えます。 4に設定2

Tab size set to 4タブサイズに設定8

Tab size set to 2タブサイズに設定

Tab size set to 8タブサイズ:ここでタブと異なる設定で区切られた「単語」のいくつかの例であります

この例外は、use of \t as a data separatorです(多かれ少なかれあなたがやっているようです)。いくつかの単語が8文字より長い場合を除いて、出力にはまだ順序の尺度があります。

一方、コードをフォーマットするためのスペースに依存するPythonのような言語は、特にこれとrecommend not changing the tab size from 8に苦しんでいます。また、Python 3では、混乱を避けるためにタブとスペースを混在させることもできません。

状況を悪化させるために、状況によってはタブが「エリア」を変更するstackoverflow.comのような意味があります。今すぐタブを押すと、画面の他の部分に着陸します。 Hereは、コンピュータで使用するタブの使用ガイドラインです。

関連する問題