无法从' funCall'中的列表中获取单个值功能。知道如何索引* args?
def funCall(*args):
ans = args[0]
print(ans)
def roll(a_list):
check = []
for i in a_list:
if a_list.count(i) > 2:
check.append(i)
print(check)
if len(check) == 3:
funCall(check)
roll([3, 2, 3, 5, 3])
答案 0 :(得分:0)
您需要将check
传递给funCall
,如下所示:
if len(check) == 3:
funCall(*check)
现在,在funCall
中,ans
将存储check
答案 1 :(得分:0)
你误解了*args
是如何运作的。 Args是一个元组,包含传递给方法的所有未命名参数。
例如想象一下:
def foo(*args):
print(args)
foo([1,2,3], True, 1) # Prints ([1,2,3], True, 1,)
foo(*[1,2,3]) # Prints (1,2,3,)
Args是一个包含传入的所有参数的元组。所以在你的情况下args[0]
只是传入的第一个东西,而不是列表的第一个索引。
如果您想使用商品值填充元组,可以使用前缀*
来传递它,例如foo(*[1, 2, 3,])
。这将打印出(1, 2, 3,)
,您的索引0将是您传入的列表中的第一项。