Список Python Copy и Slice Изменение оригинального спискаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Список Python Copy и Slice Изменение оригинального списка

Сообщение Anonymous »

У меня есть список, как показано ниже: < /p>

Код: Выделить всё

voting_records = [['1.', 'DIRECTOR', 'Management'],
['1', 'Allison Grant Williams', 'For'],
['2', 'Sheila Hartnett-Devlin', 'For'],
['3', 'James Jessee', 'For'],
['4', 'Teresa Polley', 'For'],
['5', 'Ashley T. Rabun', 'For'],
['6', 'James E. Ross', 'For'],
['7', 'Rory Tobin', 'For']]
Я создал копию этого списка с именем voiceing_records_short, используя понимание списка:

Код: Выделить всё

cnames = ["Record","Proposal","Sponsor","VoteCast"]
voting_records_short = [record for record in voting_records if len(record) < len(cnames)]
Затем я создал фрагмент voiceing_records_short и сохранил его в директориях. Затем я изменяю список директоров в цикле for, как показано ниже:

Код: Выделить всё

if len(voting_records_short) == 0: pass
else:
ifdirector = ["DIRECTOR" in record for record in voting_records_short]
if True in ifdirector:
directorindx = int(ifdirector.index(True))
directorline = [voting_records_short[directorindx]]
directors = voting_records_short[directorindx+1:]
sponsoridx = cnames.index("Sponsor")
for ls in range(len(directors)):
directors[ls][0] = directorline[0][0] + directors[ls][0]
directors[ls][1] = directorline[0][1] + " " +directors[ls][1]
directors[ls].insert(sponsoridx,directorline[0][-1])
Почему изменение директоров перечисляет в списке для цикла изменяется как список голосования_рекордса_шорта и hoting_records , как показано в результатах ниже:

Код: Выделить всё

In [2]: voting_records
Out[2]:
[['1.', 'DIRECTOR', 'Management'],
['1.1', 'DIRECTOR Allison Grant Williams', 'Management', 'For'],
['1.2', 'DIRECTOR Sheila Hartnett-Devlin', 'Management', 'For'],
['1.3', 'DIRECTOR James Jessee', 'Management', 'For'],
['1.4', 'DIRECTOR Teresa Polley', 'Management', 'For'],
['1.5', 'DIRECTOR Ashley T. Rabun', 'Management', 'For'],
['1.6', 'DIRECTOR James E. Ross', 'Management', 'For'],
['1.7', 'DIRECTOR Rory Tobin', 'Management', 'For']]

In [9]: voting_records_short
Out[9]:
[['1.', 'DIRECTOR', 'Management'],
['1.1', 'DIRECTOR Allison Grant Williams', 'Management', 'For'],
['1.2', 'DIRECTOR Sheila Hartnett-Devlin', 'Management', 'For'],
['1.3', 'DIRECTOR James Jessee', 'Management', 'For'],
['1.4', 'DIRECTOR Teresa Polley', 'Management', 'For'],
['1.5', 'DIRECTOR Ashley T. Rabun', 'Management', 'For'],
['1.6', 'DIRECTOR James E. Ross', 'Management', 'For'],
['1.7', 'DIRECTOR Rory Tobin', 'Management', 'For']]

Я ожидал, что будет изменен только список директоров (и, возможно, Voting_records_short, но я не уверен), но почему исходный список Voting_records список изменен? Буду признателен за любую помощь?

Подробнее здесь: https://stackoverflow.com/questions/758 ... ginal-list
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»