年,月,日,小时,分钟从dict访问这些值。现在我想创建一个像年= 12个月= 1 的字符串,如果只有几年和几个月。考虑一个案例只有几分钟和几分钟。那么字符串应该是分钟= 1秒= 1 。我怎么能以有效的方式做到这一点? 示例数据可能如下所示
我试着这样做。但是没有工作
years, months, days, hours, minutes = self.initial_data["months"], \
self.initial_data["years"], \
self.initial_data["days"], \
self.initial_data["hours"], \
self.initial_data["minutes"],
duration = if years: "years= {}".format(years) + \
if months "months={}".format(months) +\
and so on
因此,如果有值,则字符串会改变
答案 0 :(得分:0)
除了语法错误(你不能以这种方式使用if
)之外,你还要让它变得比它需要的更复杂。只需创建一个有序地图并循环浏览它,即可从self.initial_data
中提取现有字段:
fields = ["years", "months", "days", "hours", "minutes", "seconds"] # ordered list
data = self.initial_data # a shorthand for readability sake
duration = " ".join("{}={}".format(f, data[f]) for f in fields if f in data)
如果您要忽略其值为data[f]
的字段(例如False
,0
等,则可以在持续时间列表构建中添加其他None
项检查。 )。