循环遍历元组列表,独立调用元素

时间:2013-07-26 23:11:29

标签: python

我有一个元组列表:

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但只有一个参数。

有办法做到这一点吗?

2 个答案:

答案 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)