terça-feira, 10 de agosto de 2010

python - utilizando o set para manipular strings, listas, tuplas etc.

Um objeto set é uma coleção desordenada de objetos hashable.
assim como em outras coleções, os sets suportam x in set, len(set), e for x in set. Sendo
uma coleção desordenada, os sets não salvam a posição dos elementos ou a ordem da inserção.
consequentemente, sets não suportam indexação...
Existe atualmente dois tipos de set built-in, que são frozenset e set. O tipo frozenset é imutável e o tipo set é mutável e o conteúdo pode ser modificado usando metodos como add() e remove().

exemplos de uso:

remove()
remove elementos do set
>>> a = set('abcd')
>>> a.remove('a')

>>> print a
set(['c', 'b', 'd'])

add()
adiciona elementos ao set
>>> a = set('abcd')
>>> a.add('a')

>>> print a
set(['a', 'c', 'b', 'd'])


intersection()
set(a) & set(b) é o mesmo que set(a).intersection(b)
exibe os itens em comum entre as listas a e b
a = [1,2,3,'a','b','c']
b = [1,2,'c','d','b']

>>> set(a) & set(b)

6: set([1, 2, 'b', 'c'])

difference()
set(a) - set(b) é o mesmo que set(a).difference(b)
retorna a diferença entre as duas listas retornando somente
os itens que não são comuns entre elas
a = [1,2,3,'a','b','c']
b = [1,2,'c','d','b']

>>> set(a) - set(b)

8: set([3, 'a'])

union()
set(a) | set(b) que é o mesmo que set(a).union(b)
junta os itens da lista a e b
a = [1,2,3,'a','b','c']
b = [1,2,'c','d','b']

>>> set(a) | set(b)

10: set([1, 2, 3, 'a', 'b', 'c', 'd'])

symmetric_difference()
set(a) ^ set(b) é o mesmo que set(a).symmetric_difference(b)
retorna a diferença das listas mostrando os elementos que não são comum em ambas
a = [1,2,3,'a','b','c']
b = [1,2,'c','d','b']

>>> set(a) ^ set(b)

135: set([1, 2, 'a'])

pop()
remove e retorna um elemento arbitrário do set
a = [1,2,3,'a','b','c']
b = [1,2,'c','d','b']

>>> s = set(a) ^ set(b)
>>> print s
set(['a', 1, 2])

>>> s.pop()
144: 'a'

>>> print s
set([1, 2])

>>> s.pop()
145: 1

>>> print s
set([2])


clear()
remove todos os elementos do set
>>> s = set('1a3b5c6789')
>>> print s
set(['a', 'c', 'b', '1', '3', '5', '7', '6', '9', '8'])

>>> s.clear()
>>> print s
set([])

isdisjoint()
retorna True se o set a e b não tem elementos em comum.
>>> a
252: set(['a', 'b', 'c', 'd'])

>>> b
253: set(['1', 'f'])

>>> a.isdisjoint(b)
254: True

>>> b = set(['1','a'])
>>> a.isdisjoint(b)
255: False


issubset()
a <= b é o mesmo que a.issubset(b) verefica se os elementos no set a contem no set b
>>> a = set('abcd')
>>> b = set('abcd')

>>> a <= b
263: True

>>> b = set('abc')

>>> a <= b
264: False


issuperset()
a >= b é o mesmo a.issuperset()
verifica se os elementos do set b contem no set a
>>> a
283: set(['a', 'b', 'c', 'd'])

>>> b
284: set(['a', 'b', 'c'])

>>> a >= b
285: True

>>> a = set('asdf')
>>> a >= b
286: False

update()
atualiza do set a com os elementos do set b
>>> a = set('123')
>>> b = set('456')
>>> a.update(b)

>>> a
299: set(['1', '2', '3', '4', '5', '6'])

Nenhum comentário:

Postar um comentário