Подтвердить что ты не робот

Python: Array v. List

Возможный дубликат:
Список Python против массива - когда использовать?

Я работаю над несколькими проектами на Python, и у меня есть несколько вопросов:

  • В чем разница между массивами и списками?
  • Если это не очевидно из вопроса 1, который я должен использовать?
  • Как вы используете предпочтительный вариант? (создать массив/список, добавить элемент, удалить элемент, выбрать случайный элемент)
4b9b3361

Ответ 1

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

python действительно имеет три примитивные структуры данных

tuple = ('a','b','c')
list = ['a','b','c']
dict = {'a':1, 'b': true, 'c': "name"}

list.append('d') #will add 'd' to the list
list[0] #will get the first item 'a'

list.insert(i, x) # Insert an item at a given position. The first argument is the index of the element before which to insert, so a.insert(0, x) inserts at the front of the list, and a.insert(len(a), x) is equivalent to a.append(x).    

list.pop(2) # will remove items by position (index), remove the 3rd item
list.remove(x) # Remove the first item from the list whose value is x.

list.index(x) # Return the index in the list of the first item whose value is x. It is an error if there is no such item.

list.count(x) # Return the number of times x appears in the list.

list.sort(cmp=None, key=None, reverse=False) # Sort the items of the list in place (the arguments can be used for sort customization, see sorted() for their explanation).

list.reverse() # Reverse the elements of the list, in place.

Подробнее о структурах данных здесь: http://docs.python.org/tutorial/datastructures.html

Ответ 2

Здесь нет ничего конкретного, и этот ответ немного субъективен...

В общем, я считаю, что вы должны использовать список только потому, что он поддерживается в синтаксисе и используется более широко в других библиотеках и т.д.

Вы должны использовать массивы, если знаете, что все в "списке" будет одного типа, и вы хотите сохранить данные более компактно.