Python: как вывести ключ и значение словаря как следующий стиль, используя Python 2.6?
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..."
если я добавлю условие, как это сделать:
если значение равно false, ключ и значение не будут выводиться в строке (только выводить ключ ture и остальные)
2 ответа
Решение
Вот как бы я это сделал:
" ".join("%s=%s" % (k, v) for k, v in csstidy_opts.iteritems() if v is not False)
Не уверен, что именно вы имеете в виду только при выводе "ключа ture", но это не выведет в ваш словарь то, что установлено в False.
Редактировать:
Если вам нужно поместить аргументы в аргументы, вы можете сделать что-то похожее:
args = ["%s=%s" % (k, v) for k, v in csstidy_opts.iteritems() if v is not 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
вывод
--merge_selectors=2
также обратите внимание, что ложь должна быть ложной