Форум сайта python.su
0
Здравствуйте, помогите пожалуйста разобраться, почему не работает код?
a=[(0,1),(0,2), (2,3)] sorted(a, key=lambda (user_id, num_friends): num_friends, reverse=True)
File "<input>", line 2 key=lambda (user_id, num_friends): num_friends, ^ SyntaxError: invalid syntax
Отредактировано dobriy_dada (Ноя. 28, 2015 10:04:46)
Офлайн
253
dobriy_dadaУ меня работает. Соберите код в одну строчку, наверное табуляция.
SyntaxError: invalid syntax
Офлайн
0
Через консоль ввёл
>>> a
[(0, 1), (0, 2), (2, 3)]
>>> sorted(a,key=lambda(user_id, num_friends):num_friends,reverse=True)
File "<input>", line 1
sorted(a,key=lambda(user_id, num_friends):num_friends,reverse=True)
^
SyntaxError: invalid syntax
Отредактировано dobriy_dada (Ноя. 28, 2015 10:35:45)
Офлайн
0
Сделал по-другому
from operator import itemgetter
sort_a=sorted(a,key=itemgetter(1),reverse=True)
sort_a=sorted(a,key=lambda x: x[1],reverse=True)
Офлайн
221
doza_and
это на втором питоне работает, в третьем, судя по всему, лямбда конструкция сделана иначе.
>>> l = lambda x,y: y >>> l(x=1,y=2) 2 >>> l(1,2) 2 >>> l((1,2)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: <lambda>() missing 1 required positional argument: 'y'
Офлайн
857
Во втором
>>> t = lambda (x, y): (x * 2, y * 2) >>> t((1, 2)) (2, 4) >>>
>>> t = lambda (x, y): (x * 2, y * 2) File "<stdin>", line 1 t = lambda (x, y): (x * 2, y * 2) ^ SyntaxError: invalid syntax >>>
JOHN_16Это не лямбда, а вообще все функции.
в третьем, судя по всему, лямбда конструкция сделана иначе
Офлайн