Python: как вывести ключ и значение словаря как следующий стиль, используя Python 2.6? - PullRequest
0 голосов
/ 16 марта 2012
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)

я хочу вывести строку следующим образом:

"- allow_html_in_templates = false --compress_colors = false ..."

если я добавлю условие, какdo:

если значение равно false, ключ и значение не будут выводиться в строке (только вывод ключа ture и других)

Ответы [ 2 ]

4 голосов
/ 16 марта 2012

Вот как бы я это сделал:

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

Не уверен, что именно вы имеете в виду только при выводе "ключа ture", но это не выведет вещи, которые установлены в False в вашем входном словаре.

Edit:

Если вам нужно поместить аргументы в аргументы, вы можете сделать что-то похожее:

args = ["%s=%s" % (k, v) for k, v in csstidy_opts.iteritems() if v is not False]
0 голосов
/ 16 марта 2012

Вы можете сделать что-то вроде этого:

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

также отметьте, что false должно быть False

...