Преобразование кода из 2.4 в 2.7

#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 🙂 каждый раз забываем основную вещь