Вернуться   Программирование для SEO » Программирование » Python
Ответ
 
Опции темы Опции просмотра
  #1  
Старый 03.03.2010, 14:18
Cabal Cabal вне форума
Пользователь
 
Регистрация: 21.08.2009
Сообщений: 35
Cabal на пути к лучшему
По умолчанию дневник былокодера. часть 1 :)

Когда то на почве того что всё в питоне - объекты случился у меня такой курьёз:
Цитата:
a = ['a', 'b']
b = a
a.append('c')
print b
Ну вы поняли какой там результат(в отличие от меня тогда).
Цитата:
['a', 'b', 'c']
b ведь ссылка, а не новый объект. Тогда разбираться с этой особенностью не было времени и я просто обошел её таким образом:
Цитата:
a = ['a', 'b']
b = [k for k in a]
a.append('c')
print b
На выходе то что мне и нужно:
Цитата:
['a', 'b']
А сейчас задумался вот о чём: наверняка есть штатный способ создавать копии списков. Подскажите штатный способ если он есть.

Последний раз редактировалось Cabal; 03.03.2010 в 14:51.
Ответить с цитированием
  #2  
Старый 03.03.2010, 14:25
Cabal Cabal вне форума
Пользователь
 
Регистрация: 21.08.2009
Сообщений: 35
Cabal на пути к лучшему
По умолчанию

пока нашел такой вариант:
Цитата:
a = ['a', 'b']
b = a[:len(a)]
это оно или есть что то другое?
Ответить с цитированием
  #3  
Старый 03.03.2010, 15:22
Jungle Jungle вне форума
Модератор
 
Регистрация: 13.01.2009
Сообщений: 126
Jungle на пути к лучшему
По умолчанию

всё намного проще
Код:
b = a[:]
ЗЫ: след. раз пиши заголовок темы адекватный теме, иначе буду удалять тему!
Ответить с цитированием
  #4  
Старый 03.03.2010, 17:49
Cabal Cabal вне форума
Пользователь
 
Регистрация: 21.08.2009
Сообщений: 35
Cabal на пути к лучшему
По умолчанию

Цитата:
Сообщение от jungle Посмотреть сообщение
всё намного проще
b = a[:]
а. ну логично. даже читал об этом когда знакомился с языком оказывается просто не придал значения. нда, мелочей не бывает и правда...
Ответить с цитированием
  #5  
Старый 05.03.2010, 08:28
plusplus plusplus вне форума
Пользователь
 
Регистрация: 13.01.2009
Сообщений: 97
plusplus на пути к лучшему
По умолчанию

кстати, зачем может пригодиться то, что ты можешь получить две ссылки на один объект? я что-то не могу придумать пример. это ведь не c++, зачем эта низкоуровневость...
Ответить с цитированием
  #6  
Старый 05.03.2010, 08:34
Jungle Jungle вне форума
Модератор
 
Регистрация: 13.01.2009
Сообщений: 126
Jungle на пути к лучшему
По умолчанию

Цитата:
Сообщение от plusplus Посмотреть сообщение
кстати, зачем может пригодиться то, что ты можешь получить две ссылки на один объект? я что-то не могу придумать пример. это ведь не c++, зачем эта низкоуровневость...
как я понял ему нужны были не ссылки, а копии
Ответить с цитированием
  #7  
Старый 05.03.2010, 09:40
plusplus plusplus вне форума
Пользователь
 
Регистрация: 13.01.2009
Сообщений: 97
plusplus на пути к лучшему
По умолчанию

Цитата:
Сообщение от jungle Посмотреть сообщение
как я понял ему нужны были не ссылки, а копии
да не, я не к нему обращался, я имел ввиду зачем они вообще нужны в питоне.
Ответить с цитированием
  #8  
Старый 05.03.2010, 09:56
Jungle Jungle вне форума
Модератор
 
Регистрация: 13.01.2009
Сообщений: 126
Jungle на пути к лучшему
По умолчанию

как зачем? странный вопрос
а как без ссылок? зачем несколько ссылок на один объект ты имеешь ввиду?
а как без них ты будешь передавать объект другой функции?
ссылка это просто указатель на данные
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 22:56.