【发布时间】:2014-01-17 11:34:53
【问题描述】:
我正在尝试从多个列表构建字典。问题是,如果给定列表为空,那么我不希望它包含在字典中。
这是可能的键
'required',
'as_banner',
'min',
'chart_layout',
'client_name',
'filter_text',
'sort_order',
'chart_type',
'chart_color',
'position',
'order'
这是我构建字典的方法:
propertyDict = dict()
propertyDict["required"] = requiredtype
propertyDict["as_banner"] = as_bannertype
propertyDict["min"] = mintype
propertyDict["chart_layout"] = chart_layouttype
propertyDict["client_name"] = clientnametype
propertyDict["filter_text"] = filter_texttype
propertyDict["sort_order"] = sort_ordertype
propertyDict["chart_type"] = charttype
propertyDict["chart_color"] = chart_colortype
propertyDict["position"] = positiontype
propertyDict["order"] = ordertype
这是我的脚本,如果它存在于“字段”集合中,我将在其中附加键的值。
for table in mtd_tom.Tables:
if not is_profile_table(table, type="mtd"):
if table.Description == "Sport Parents (Regrouped)":
for i, subaxis in enumerate(table.Axes['Side'].SubAxes):
nField = shatter_sae(subaxis.Specification)['varName']
field = mdd.Fields[nField]
if field.Properties.Item['required']:
requiredtype.append(field.Properties.Item['required'])
if field.Properties.Item['as_banner']:
as_bannertype.append(field.Properties.Item['as_banner'])
if field.Properties.Item['min']:
mintype.append(field.Properties.Item['min'])
if field.Properties.Item['chart_layout']:
chart_layouttype.append(field.Properties.Item['chart_layout'])
if field.Properties.Item['client_name']:
clientnametype.append(field.Properties.Item['client_name'])
if field.Properties.Item['filter_text']:
filter_texttype.append(field.Properties.Item['filter_text'])
if field.Properties.Item['sort_order']:
sort_ordertype.append(field.Properties.Item['sort_order'])
if field.Properties.Item['chart_type']:
charttype.append(field.Properties.Item['chart_type'])
if field.Properties.Item['chart_color']:
chart_colortype.append(field.Properties.Item['chart_color'])
if field.Properties.Item['position']:
positiontype.append(field.Properties.Item['position'])
if field.Properties.Item['order']:
ordertype.append(field.Properties.Item['order'])
else:
print "%s not found" % properties[i]
这是现在的输出:
{'as_banner': [], 'chart_color': ['green', 'pink', 'green', 'green', 'green', 'orange', 'yellow', 'white'], 'chart_layout': ['1', '2', '3', '4', '5', '6', '7', '8'], 'sort_order': ['asending', 'desending', 'asending', 'desending', 'asending', 'asending', 'asending', 'desending'], 'chart_type': ['bar', 'WeightedBar', 'column', 'pie', 'line', 'column', 'line', 'pie'], 'client_name': ['Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)', 'Sport Parents (Regrouped)'], 'filter_text': [], 'required': [], 'position': [], 'min': [], 'order': []}
注意,我不希望包含空值的键...
而且我不想创建一个列表的副本,其中不包括具有空值的键...
关于如何做到这一点的任何建议?
【问题讨论】:
标签: python dictionary key key-value