2013-04-19 3 views
1

У меня есть проблема с набором в Python 2.2. В настоящее время я просто сравнивая между двумя списками так:Set function in Python 2.2

temp3 = set(list1) - set(list2) 

Но он держит побуждая мне этот набор не определить. Я использовал 2.7 для создания программы. Обновление программного обеспечения не является вариантом, к сожалению. Есть ли альтернатива, которую я могу использовать?

+0

повезло, вы пропустили на 'sets.Set' по одной версии – jamylak

+0

это ваш единственный вариант использования для наборов? Сравнение массивов довольно прямолинейно. –

+0

Модуль 'sets', полученный в python 2.3, и который также заменяется на' set' и 'frozenset'. так .. лучше обновить? – thkang

ответ

1

Вы можете попробовать сторонние модули, которые предоставляют отсутствующую функциональность set. Например, demset.

Самый простой способ использовать этот модуль, чтобы сохранить его в том же каталоге, что и программы, которую вы пишете, и импортировать нужные содержимое следующим образом:

from demset import set 

documentation, а также home page упомянуть путь к использовать Python встроенный setfrozenset) при наличии, и использовать только в версии demset модуля, когда встроенные модули не доступны:

try: 
    type(frozenset) 
except NameError: 
    from demset import set, frozenset 

Помимо из этих импортов ваша программа может оставаться абсолютно одинаковой.

Обратите внимание, что я упомянул о том, что поддерживаю модуль demset в том же каталоге, что и ваша программа, только потому, что это не требует никакой установки, и если вы застряли на Python 2.2, это звучит, как будто вам не разрешено ничего устанавливать.

+0

Могу ли я узнать, как его использовать? Я все еще новичок в Python (всего за несколько недель). Извините за неудобства. –

0

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

tmp3=[] 
for i in list1: 
    if i not in list2 and i not in tmp3: 
    tmp3.append(i)