通过访问字典值来创建字符串

时间:2017-12-05 10:57:43

标签: python string dictionary

年,月,日,小时,分钟从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

因此,如果有值,则字符串会改变

1 个答案:

答案 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]的字段(例如False0等,则可以在持续时间列表构建中添加其他None项检查。 )。