我的代码中有一行使用字典:
print("{} {}".format(holiday["data"].strftime("%d/%m"), holiday["description"]))
我不知道它是否更优雅,但我想将此示例应用为元组。
答案 0 :(得分:1)
如果两个值都在元组中,您可以使用datetime
和date
个对象支持直接使用str.format()
进行格式化的事实:
holiday_tuple = (datetime.date(2015, 3, 1), 'some description')
print("{:%d/%m} {}".format(*holiday_tuple))
*arg
语法将holiday_tuple
中的两个元素作为单独的参数应用。
您也可以让字符串模板进行提取:
print("{0[0]:%d/%m} {0[1]}".format(holiday_tuple))
演示:
>>> import datetime
>>> holiday_tuple = (datetime.date(2015, 3, 1), 'some description')
>>> print("{:%d/%m} {}".format(*holiday_tuple))
01/03 some description
>>> print("{0[0]:%d/%m} {0[1]}".format(holiday_tuple))
01/03 some description
我做过类似字典的事情;而不是从参数中的字典中提取键,使用**kwargs
语法或使用索引语法提取这些键:
holiday_dictionary = {'data': datetime.date(2015, 3, 1), 'description': 'some description')
print("{data:%d/%m} {description}".format(**holiday_dictionary))
print("{0[data]:%d/%m} {0[description]}".format(holiday_dictionary))
答案 1 :(得分:0)
尝试使用整数索引,具体取决于哪个索引对应于哪个值。如果你的假日变量是一个元组,那就是。否则,您应该创建一个字典并使用原始代码行。
print("{} {}".format(holiday[0].strftime("%d/%m"), holiday[1]))
答案 2 :(得分:0)
这里不需要担心元组,如果你确实有dict
,那么你可以使用str.format
直接从dict
进行,例如:
from datetime import datetime
holiday = {
'data': datetime.today(),
'description': 'Would love one'
}
res = '{data:%d/%m} {description}'.format(**holiday)
# 01/03 Would love one