Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает функция "append", Не работает функция 
:(
    Опции темы
rapa
Дата 28.12.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.6.2005

Репутация: нет
Всего: нет



Написал вот такой скрипт
Код

def UnionOf2Groups(s1,s2):
    result = []
    result = s1
    for s in s2:
        for i in result:
            if i not in s:
                result.append(i)
    return result

а функция "append" не работает,подскажите в чём проблема

PM MAIL   Вверх
J2A
Дата 28.12.2005, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 17.11.2005
Где: Омск

Репутация: 16
Всего: 18



Цитата(rapa @ 28.12.2005, 13:24)

а функция "append" не работает,подскажите в чём проблема

Это твоя функция не работает, а не append.
1. Ты делаешь цикл по result и внутри цикла его же меняешь. Так нельзя.
2. Ты делаешь цикл по s2, т.е. в s единичный элемент, а потом проверяешь i на вхождение в s.

Теперь объясни, что ты хочешь получить?

Это сообщение отредактировал(а) J2A - 28.12.2005, 14:09
--------------------
Be easy, stay cool
PM MAIL WWW Jabber   Вверх
setq
Дата 28.12.2005, 14:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а объясните словами что Вы хотите сделать? что такое s1 и s2?

параллельно, одно замечание по программе:
Код

    result = []
    result = s1

первая из этих строчек не имеет смысла. если не ясно почему - спрашивайте.
  Вверх
rapa
Дата 28.12.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.6.2005

Репутация: нет
Всего: нет



Я хочу объеденить 2 группы по математическому принципу,т.е. если число встречается в двух группах,то в объединённой оно будет одинажды.
PM MAIL   Вверх
setq
Дата 28.12.2005, 14:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











тогда Вашу функцию стоит слегка отредактировать:
Код

def UnionOf2Groups(s1,s2):
    result = s1[:]  # save in result copy of s1
    for s in s2:
        if s not in s1:
            result.append(s)
    return result


обратите внимание, в python есть встроенный тип "множество". так что я бы наверно написал так:
Код

def UnionOf2Groups(s1,s2):
    A = set(s1)
    B = set(s2)
    return list(A & B)


ну и я совершенно согласен с J2A. не стоит менять список внутри цикла по тому же списку.
  Вверх
rapa
Дата 28.12.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.6.2005

Репутация: нет
Всего: нет



setq

Цитата

обратите внимание, в python есть встроенный тип "множество". так что я бы наверно написал так:

Код

def UnionOf2Groups(s1,s2):
    A = set(s1)
    B = set(s2)
    return list(A & B)





На ввод UnionOf2Groups([1,2,3],[2,3,4]) выводтакой: [2,3],а если заменить return list(A & B)
на return list(A | B) то вывод как надо [1,2,3,4]

Добавлено @ 15:09
setq
Кстати,что такое функция list???
PM MAIL   Вверх
setq
Дата 28.12.2005, 15:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











sorry smile
  Вверх
rapa
Дата 28.12.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.6.2005

Репутация: нет
Всего: нет



setq
Так всё таки,что такое функция list??? Нельзя ли просвятить идиота? smile
PM MAIL   Вверх
setq
Дата 28.12.2005, 15:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Кстати,что такое функция list???


встроенная функция list() пытается преобразовать свой аргумент в список (ну тот самый, который записывается в квадратных скобках). можно смотреть на это и по-другому: list() - это конструктор для встроенного типа "список". например:
Код

>>> list()
[]
>>> 


детали смотрите в документации.
  Вверх
rapa
Дата 28.12.2005, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.6.2005

Репутация: нет
Всего: нет



setq
Много раз спасибо.Тема исчерпана !!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.