在元组上的副词

时间:2015-09-21 03:13:54

标签: python

我正在尝试在python中编写一个函数,该函数将使用两个不同的元素来获取可变数量的元素,这两个元素将分隔两个元组中的参数。例如,我想打个电话:

foo('D1', d1n1, d1n2, ... , 'D2', d2n1, d2n2, ...)

其中d1n1等类型相同,我想在元组中得到'D1'和'D2'之间的元素,而在另一个元素中得到'D2'之后的元素。但我对如何做到这一点有点失落。任何帮助将不胜感激:)。

1 个答案:

答案 0 :(得分:4)

可以通过使用*args接受无限数量的参数,然后将args除以第二个不同元素的索引来实现。

例如:

def foo(*args):
    ind = args.index('D2')
    lst1 = args[:ind]
    lst2 = args[ind:]
    print lst1
    print lst2


foo('D1', 1, 2, 3, 4, 5, 'D2', 6, 7, 8, 9) 

<强>输出

('D1', 1, 2, 3, 4, 5)
('D2', 6, 7, 8, 9)

实现它的另一种方法是,当她调用函数时(使用命名参数),要求用户分别分离参数:

def foo(lst1, lst2):
    print lst1
    print lst2


foo(lst1=['D1', 1, 2, 3, 4, 5], lst2=['D2', 6, 7, 8, 9])