2016-06-02 2 views
0

Дано целое число к, я запрограммировал способ взять все разделы к такой, чтоSage («Python-как» язык) Атрибут ошибки «IntegerListsLex_with_category.element_class» объект

(1) каждый раздел имеет самое n записей (где также указано n)

(2) В каждой секции нет повторяющихся нечетных чисел.

Я также классифицировал список этих разделов в порядке убывания. Однако я не могу добавить нули в конец любого раздела в списке, так что все разделы являются n-кортежами.

# Define n and k 
(k, n) = (10, 5) 

# Find partitions of k of max length n, and put partitions in list B 
B = Partitions(k, max_length=n).list() 

# Extracts partitions with repeated odd components and creates a separate list for them, namely B_Repeated_Odds 
B_Repeated_Odds = [] 
for i in range(0, len(B)): 
    for j in range(0, len(B[i])): 
     for l in range(0, len(B[i])): 
      if B[i][j]%2 == 1: 
       if B[i][l]%2 == 1: 
        if B[i][j] == B[i][l]: 
         if j != l: 
          B_Repeated_Odds.append(B[i]) 

# Remove duplicates from B_Repeated_Odds 
B_Unique = uniq(B_Repeated_Odds) 

# Remove unwanted partitions from original list B, and sort finalized list in descending order 
Improper_Part = Set(B).difference(Set(B_Unique)) 
Proper_Part = sorted(Improper_Part, reverse=true) 

for i in range(0, len(Proper_Part)): 
    while len(Proper_Part[i]) < n: 
     Proper_Part[i].append(0) 

Вышеупомянутая проблема возникает в трех последних строках кода, с сообщением об ошибке, говорящее «Атрибут Ошибка: объект„IntegerListsLex_with_category.element_class“не имеет атрибута„добавляемых“.»

Мой вопрос конкретно в том, как я могу изменить типы разделов в списке Proper_Part из IntegerListsLex_with_category.element_class в список (или любой другой объект, в котором применяется команда добавления)? Или, если кто-нибудь увидит лучший подход, я бы хотел это услышать.

ответ

0

Чтобы ответить на мой собственный вопрос, подходящий для замены трех нижних строк кода является следующее:

# Convert each partition from IntegerListsLex_with_category.element object to list 
C = [] 
for i in range(0, len(Proper_Part)): 
    C.append(list(Proper_Part[i])) 
    while len(C[i]) < n: 
     C[i].append(0) 
Смежные вопросы