2012-03-16 39 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 =假--compress_colors =假......」

如果我添加的條件,該怎麼辦:

如果該值爲false,鍵和值將字符串(僅僅只有輸出TURE鍵和其他)

+1

最後4行你的代碼似乎有解決方案已經:你可以簡單地採取一個字符串'csstidy =「」',當你提出添加的所有地圖項目:'csstidy + =「 - 」+ key +「=」+ value +「」'在該值等於'True'的情況下。 – devsnd 2012-03-16 15:31:40

回答

4

在這裏,在不輸出是我會怎麼做:

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

不確定您輸入「ture key」的意思是什麼,但是這不會輸出在輸入字典中設置爲False的內容。

編輯:

如果你需要把參數到指定參數時,你可以做相當類似的事情:

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

我也會給出確切的答案。 +1 – jdi 2012-03-16 15:58:36

0

你可以做這樣的事情:

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 

輸出

--merge_selectors=2 

也注意到虛假需求是假

+1

多級別的字符串連接不是推薦的或有效的方法。如果我使用'args = []',如何使用列表comprension和字符串格式從其他答案 – jdi 2012-03-16 15:56:41

+0

@ malbani,如何使用'append'將鍵和值推入數組!我是Python的初學者,但我想編寫崇高的文本2的csstidy包! – Terry 2012-03-16 16:03:00

+0

@jdi哇從來沒有意識到python字符串連接比.join慢得多。這裏是我閱讀你的評論後發現的比較[鏈接](http://stackoverflow.com/questions/3055477/how-slow-is-pythons-string-concatenation-vs-str-join) – malbani 2012-03-16 17:43:42