Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2013 22:51:45

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить элемент в список

Что использовать вместо обычного

L.append('что то там')
чтобы задавать сразу же индекс(ключ) ячейки,
типа
L[i][j]='как то так'



моя подпись

Отредактировано nokados (Окт. 24, 2013 23:08:20)

Офлайн

#2 Окт. 24, 2013 23:06:46

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить элемент в список

и еще как сдвигать список на одну(к примеру) позицию вниз. То есть, например, после операции split() создался список

[0:n]
, а нужен
[1:n+1]



моя подпись

Отредактировано nokados (Окт. 24, 2013 23:07:12)

Офлайн

#3 Окт. 24, 2013 23:27:56

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Добавить элемент в список

nokados
Что использовать вместо обычного
Мозг, чтобы понять, что список не массив.

Можно использовать такой объект, как defaultdict, задавая ему внутри словарь, как default_factory.


from collections import defaultdict
d = defaultdict(dict)
>>> d
defaultdict(<type 'dict'>, {})
>>> d[1][1] = 'your item'
>>> d
defaultdict(<type 'dict'>, {1: {1: 'your item'}})



Отредактировано Budulianin (Окт. 24, 2013 23:28:45)

Офлайн

#4 Окт. 25, 2013 00:24:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Добавить элемент в список

nokados
Что использовать вместо обычного
Да бога ради, но для этого сначала всё равно придётся заполнить матрицу значениями, ибо что если я захочу сразу заполнить ячейку с миллионным индексом?

class array(list):
    def __init__(self, length):
        self.extend([None] * length)
class matrix(list):
    def __init__(self, len_x, len_y):
        map(lambda row: self.append(array(len_x)), xrange(len_y))
a = matrix(12, 6)
a[2][10] = "sdfsdf"
print a



Отредактировано FishHook (Окт. 26, 2013 00:14:30)

Офлайн

#5 Окт. 25, 2013 00:27:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Добавить элемент в список

nokados
и еще как сдвигать список на одну(к примеру) позицию вниз. То есть, например, после операции split() создался список
a = [1,2,3,4]
a.insert(0, None)
print a



Офлайн

#6 Окт. 27, 2013 21:41:32

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить элемент в список

О! Читая учебник по питону (Лутц) нашел очень интересное замечание:
Оказывается в словарях в качестве ключа можно использовать, не только строки, но и любые другие неизменяемые объекты, в том числе числа и кортежи, благодаря чему можно создавать и массивы, матрицы, и даже некоторое подобие графов!



моя подпись

Офлайн

#7 Окт. 27, 2013 22:49:58

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Добавить элемент в список

nokados
Оказывается в словарях в качестве ключа можно использовать, не только строки, но и любые другие неизменяемые объекты

Молодец, теперь найди - почему :)



Офлайн

#8 Окт. 28, 2013 20:08:51

nokados
От: Ростов
Зарегистрирован: 2013-10-15
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить элемент в список

Budulianin
Молодец, теперь найди - почему :)
И почему же?



моя подпись

Офлайн

#9 Окт. 28, 2013 20:32:38

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Добавить элемент в список

nokados
И почему же?
Я сказал - найди, а не спроси



Офлайн

#10 Окт. 28, 2013 20:51:00

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Добавить элемент в список

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version