Python: добавление данных в список - PullRequest
0 голосов
/ 26 августа 2018

Я изучаю списки и пытаюсь создать список и добавить в него данные.

mylist=[]
mylist[0]="hello"

Это приводит к ошибке.

Почему мы не можем добавлять членов в списки, как это, как мыделать с массивами в JavaScript.Так как они также являются динамическими, и мы можем добавить к нему как можно больше членов и данных любого типа.

В javascript это работает:

var ar=[];
ar[0]=333;

Почему этот принцип работает в Python, и мы используем толькоappend () для добавления в список.

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

mylist[0] = 'hello' является синтаксическим сахаром для mylist.__setitem__(0, 'hello').

Согласно документам для object.__setitem__(self, key, value):

Те же исключения должны быть поднятыдля неправильных значений ключа, как для метода __getitem__().

документы для __getitem__ конкретно указывают, что приводит к IndexError:

если значение выходит за пределы набора индексов для последовательности (после какой-либо специальной интерпретации отрицательных значений), следует увеличить IndexError.

Что касается цели, стоящей за этим проектным решением, можно написать несколькоглавы, объясняющие, почему list был разработан таким образом.Вы должны ознакомиться с индексированием и нарезкой списка Python, прежде чем выносить суждения о его полезности.

0 голосов
/ 26 августа 2018

Списки в Python принципиально отличаются от массивов в таких языках, как C. Вы не создаете список фиксированного размера и не присваиваете элементы индексам в нем.Вместо этого вы либо создаете пустой список и добавляете к нему элементы, либо используете списки для создания списка из типа выражения.

В вашем случае вы хотите добавить в конец, поэтому вы должныиспользуйте метод .append:

mylist.append('hello')
#["hello"]

И пример понимания списка:

squares = [x**2 for x in range(10)]
#[1,4,9,16,25,36,49,64,81,100]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...