Я пытаюсь научиться использовать * args и придумал это.Python convert * args to list
alist =[5,2,6,1,2]
blist =[1,5,2,4,1]
def argstest(var1, var2, *args):
print "var1", var1
print "var2", var2
temp = list(args)[0]
for i in temp:
if i > 3:
print i
argstest(5, 8, alist, blist)
>>>>> var1 5
>>>>> var2 8
>>>>> 5
>>>>>>6
>>>>>>5
>>>>>>4
Хотя я вижу, как это может быть очень полезно моя первая проблема заключалась в том
temp = list(args)[0]
очень странный способ, чтобы преобразовать *args
в список, а второй в том, что это не является стандартной способ использования *args
.
Мой вопрос, что будет стандартным способом преобразования *args
в список?
Кроме того, это даже правильный способ написать функцию, которая выполняет задачу таким образом?
'* args' является кортежем, зачем вам его преобразовывать в список? Вы также передаете * in * список как один аргумент, поэтому 'args [0]' - это список. –
Martijn. В случае этой функции он должен быть списком для итерации в цикле for. femtoRgon, эти вопросы могут быть похожими, но они совсем не то же самое. –
@NickSimas: Нет, нет. Вы можете перебирать кортеж, или фактически _any_ вид итерации, точно так же, как вы можете перебирать список. – abarnert