#python #panda3d
#python #panda3d
Вопрос:
У меня есть кое-что из 2.4, и я хотел бы преобразовать это для 2.7, но проблема в том, что я каждый раз вылетаю при этой строке:
MovieCasts = tuple(lambda [outmost-iterable]: for x in [outmost-iterable]:
SyntaxError: invalid syntax
есть ли аналог для
tuple(lambda [outmost-iterable]: for x in [outmost-iterable]:
для 2.7?
Вот часть самого кода:
MovieCasts = tuple(lambda [outmost-iterable]: for x in [outmost-iterable]):
AvatarType()(range(6)))
Комментарии:
1. Вам не хватает
)
, а выражения не заканчиваются на:
.2. Возможно, имелось в виду
tuple(outmost_iterable)
Ответ №1:
1) Скобка (
не закрывается в конце.
MovieCasts = tuple(lambda [outmost-iterable]: for x in [outmost-iterable]:
^ ^
2) Переменные не должны содержать дефисов ( outmost-iterable
).
3) При повторении цикла for не выполняется ни одна операция.
for x in [outmost-iterable]
должно быть что-то вроде
x for x in [outmost-iterable]
4) Не уверен, действительно ли вы хотите использовать [ ]
. При этом вы выполняете итерацию только по одному элементу.
a = [1,2,3]
b = [x for x in [a]] # b = [[1,2,3]]
c = [x for x in a] # c = [1,2,3]
Комментарии:
1. Это выдаст вам ошибку
>>> MovieCasts = tuple(lambda [outmost-iterable]: for x in [outmost-iterable]) File "<stdin>", line 1 MovieCasts = tuple(lambda [outmost-iterable]: for x in [outmost-iterable]) ^ SyntaxError: invalid syntax
Ответ №2:
Вы должны закрыть tuple (
. Пожалуйста, исправьте текст.
Вы можете добиться преобразования данных в кортеж как.
MovieCasts = tuple(lambda outmost_iterable: x for x in range(10))
Ответ №3:
def tup(a): return tuple(i for i in a)
или
def tup(a): return tuple(a)
print tup(range(10))
#output (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
для вашего кода
tuple([outmost-iterable])
я думаю, что нет необходимости использовать lambda
Комментарии:
1. спасибо gnibbler 🙂 каждый раз забываем основную вещь