我有一个元组列表:
Months = [('2011-01-01', '2011-02-01'), ('2011-02-01', '2011-03-01'), ('2011-03-01', '2011-04-01'), ...]
我想定义一个遍历列表的函数,并独立调用元组的元素。例如:
def function(list):
print """
Start %s
End %s
""" % list
我会让他们做类似的事情:
for tuple in months:
function(tuple)
显然我有一个问题,因为我有两个%s但只有一个参数。
有办法做到这一点吗?
答案 0 :(得分:1)
只需将lst
设为元组,因此请为function
列表中的每个元素调用Months
:
for start_end in Months:
func(start_end)
并使您的字符串使用三个引号:
def func(tup):
print """
Start %s
End %s
""" % tup
字符串格式化支持传入变量中定义的元组,只要它具有正确的长度:
>>> tup = ('2011-01-01', '2011-02-01')
>>> print """
... Start %s
... End %s
... """ % tup
Start 2011-01-01
End 2011-02-01
或者,使用str.format()
格式化:
def func(tup):
print """
Start {0[0]}
End {0[0]}
""".format(tup)
你也可以使用元组拆包;将列表中的每个元组分配给循环中的两个变量:
for start, end in Months:
print 'Start {}\nEnd'.format(start, end)
答案 1 :(得分:1)
for date1, date2 in Months:
print """"
Start %s
End %s
"""" % (date1, date2)