2012-03-16 15 views
-1
args =[] 
csstidy_opts = { 
    '--allow_html_in_templates':False, 
    '--compress_colors':False, 
    '--compress_font-weight':False, 
    '--discard_invalid_properties':False, 
    '--lowercase_s':false, 
    '--preserve_css':false, 
    '--remove_bslash':false, 
    '--remove_last_;':false, 
    '--silent':False, 
    '--sort_properties':false, 
    '--sort_selectors':False, 
    '--timestamp':False, 
    '--merge_selectors':2, 
} 
for key value in csstidy_opts.item(): 
    args.append(key) 
    args.append(':') 
    args.append(value) 

私は出力に次のように文字列をしたい:私は条件を追加する場合python:Python 2.6を使って辞書のキーと値を次のスタイルとして出力する方法は?

"--allow_html_in_templates = falseを--compress_colors =偽..."

を行う方法:

値がfalseの場合、キーと値が文字列で出力(単に出力のみトゥーレキーなど)

+1

あなたが持っているコードの最後の4行は既に解決しているようです:単に文字列 'csstidy =" "'をとり、提案したようにすべてのマップ項目を追加します: 'csstidy値が「真」であるという条件の下で、+ = " - " +キー+ "=" +値+ "" ' – devsnd

答えて

4

は、ここで私はそれを行うだろうかだではないでしょう。

" ".join("%s=%s" % (k, v) for k, v in csstidy_opts.iteritems() if v is not False) 

"純正キー"の出力のみを正確には意味していませんが、入力ディクショナリでFalseに設定されているものは出力されません。

編集:

あなたは引数に引数を置く必要がある場合、あなたはかなり似たような操作を行うことができます。出力された

csstidy_opts = { 
    '--allow_html_in_templates':False, 
    '--compress_colors':False, 
    '--compress_font-weight':False, 
    '--discard_invalid_properties':False, 
    '--lowercase_s':False, 
    '--preserve_css':False, 
    '--remove_bslash':False, 
    '--remove_last_;':False, 
    '--silent':False, 
    '--sort_properties':False, 
    '--sort_selectors':False, 
    '--timestamp':False, 
    '--merge_selectors':2, 
} 

a = "" 
for key,value in csstidy_opts.iteritems():  
    if value != False: 
     a+=key+'='+str(value)+' ' 
print a 

args = ["%s=%s" % (k, v) for k, v in csstidy_opts.iteritems() if v is not False] 
+0

私も同様に答えています。 +1 – jdi

0

あなたはこのような何かを行うことができます

--merge_selectors=2 

また、Falseにする必要があることを偽にする必要があります

+1

複数レベルの文字列連結は、推奨または効率的なアプローチではありません。 'args = []'を使うと、他の答え – jdi

+0

@ malbaniのリストcomprensionと文字列の書式を使用してください。どうすればいいですか? 'append'を使ってキーと値を配列に送ります。私は、Pythonの初心者ですが、私は崇高なテキスト2のためのcsstidyパッケージをコーディングしたい! – Terry

+0

@jdi wowは、Pythonの文字列の連結が非常に遅いことを実現しませんでした。結合します。ここであなたのコメントを読んだ後に私が見つけた比較[リンク](http://stackoverflow.com/questions/3055477/how-slow-is-pythons-string-concatenation-vs-str-join) – malbani

関連する問題