1.set集合
可變集合(set):可添加和刪除元素序调,非可哈希的瘸味,不能用作字典的鍵震鹉,也不能做其他集合的元素
不可變集合(frozenset):與上面恰恰相反
Paste_Image.png
創(chuàng)建集合
>>> s = set('beginman')
>>> s
set(['a', 'b', 'e', 'g', 'i', 'm', 'n'])
>>> t = frozenset('pythonman')
>>> t
frozenset(['a', 'h', 'm', 'o', 'n', 'p', 't', 'y'])
>>> type(s),type(t)
(<type 'set'>, <type 'frozenset'>)
>>> len(s),len(t)
(7, 8)
>>> s==t
False
>>> s=t
>>> s==t
True
>>>
訪問集合
>>> 'a' in s
True
>>> 'z' in s
False
>>> for i in s:
print i
更新集合
可使用以下內(nèi)建方法來更新:
s.add()s.update()s.remove()
注意只有可變集合才能更新:
>>> s.add(0)
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
s.add(0)
AttributeError: 'frozenset' object has no attribute 'add'
>>> type(s)
<type 'frozenset'>
>>> se = set(s)
>>> se
set(['a', 'h', 'm', 'o', 'n', 'p', 't', 'y'])
>>> type(se)
<type 'set'>
>>> se.add(0)
>>> se
set(['a', 0, 'h', 'm', 'o', 'n', 'p', 't', 'y'])
>>> se.update('MM')
>>> se
set(['a', 0, 'h', 'm', 'o', 'n', 'p', 'M', 't', 'y'])
>>> se.update('Django')
>>> se
set(['a', 0, 'D', 'g', 'h', 'j', 'm', 'o', 'n', 'p', 'M', 't', 'y'])
>>> se.remove('D')
>>> se
set(['a', 0, 'g', 'h', 'j', 'm', 'o', 'n', 'p', 'M', 't', 'y'])
>>>
2. dict 集合遍歷
#!/usr/bin/python
dict={"a":"apple","b":"banana","o":"orange"}
print "##########dict######################"
for i in dict:
print ("dict[%s]=" % i,dict[i])
print "###########items#####################"
for (k,v) in dict.items():
print ("dict[%s]=" % k,v)
print "###########iteritems#################"
for k,v in dict.iteritems():
print ("dict[%s]=" % k,v)
print "###########iterkeys,itervalues#######"
for k,v in zip(dict.iterkeys(),dict.itervalues()):
print ("dict[%s]=" % k,v)
從字典中刪除元素
del dict1['sex'] # del 允許您使用 key 從一個(gè) dictionary 中刪除獨(dú)立的元素
dict1.clear() # clear 從一個(gè) dictionary 中清除所有元素
3.元組
Python中的元組(Tuple)類似于Java中的數(shù)組,一旦創(chuàng)建了一個(gè) tuple梦重,就不能以任何方式改變它赏壹。這點(diǎn)與Python中的字符串類似,所以我們說元組和字符串都是不可變的序列.元組也支持索引和分片操作.
#定義一個(gè)元組
tuple1 = (1, 2, '3', 4, '5')
# 定義了一個(gè)元組之后就無法再添加或修改元組中的元素
print tuple1[0] # 元組的元素都有確定的順序。元組的索引也是以0為基點(diǎn)的
print tuple1[-1] # 負(fù)的索引從元組的尾部開始計(jì)數(shù)
print tuple1[1:3] # 元組也可以進(jìn)行切片操作泥彤。對(duì)元組切片可以得到新的元組。
# 可以使用 in 運(yùn)算符檢查某元素是否存在于元組中卿啡。
print 1 in tuple1 # True
#使用for in 進(jìn)行遍歷元組
for item in tuple1:
print item
# 如果需要獲取item的序號(hào) 可以使用下面的遍歷方法:
for index in range(len(tuple1)):
print tuple1[index]
# 還可以使用內(nèi)置的enumerate函數(shù)
for index, item in enumerate(tuple1):
print '%i, %s' % (index, item)
4.列表
列表是Python中最具靈活性的有序集合對(duì)象類型,與字符串不同的是,列表可以包含任何種類的對(duì)象:數(shù)字,字符串,甚至是其他列表.并且列表都是可變對(duì)象,它支持在原處修改的操作.也可以通過指定的索引和分片獲取元素.列表就可元組的可變版本.
定義一個(gè)列表使用一對(duì)中(方)括號(hào)” [ ] “.與元組不同的是, 列表有一些內(nèi)置的函數(shù)對(duì)列表進(jìn)行增加,修改和刪除等操作.
#定義一個(gè)列表
listA = ['a', 'b', 'c', 1, 2]
# 向 list 中增加元素
# 1.使用append 向 list 的末尾追加單個(gè)元素吟吝。
listA.append(3)
# 2.使用 insert 將單個(gè)元素插入到 list 中。數(shù)值參數(shù)是插入點(diǎn)的索引
listA.insert(3, 'd') # 在下標(biāo)為3處添加一個(gè)元素
# 3.使用 extend 用來連接 list
listA.extend([7, 8])
### extend 和 append 看起來類似颈娜,但實(shí)際上完全不同剑逃。
### extend 接受一個(gè)參數(shù),這個(gè)參數(shù)總是一個(gè) list官辽,
### 并且把這個(gè) list 中的每個(gè)元素添加到原 list 中蛹磺。
### 另一方面,append 接受一個(gè)參數(shù)同仆,這個(gè)參數(shù)可以是任何數(shù)據(jù)類型萤捆,并且簡(jiǎn)單地追加到 list 的尾部。
# 獲取列表的長(zhǎng)度
print len(listA) # 9
# 在 list 中搜索
listA.index(3) # index 在 list 中查找一個(gè)值的首次出現(xiàn)并返回索引值俗批。
listA.index('100') # 如果在 list 中沒有找到值俗或,Python 會(huì)引發(fā)一個(gè)異常。
print 5 in listA # 要測(cè)試一個(gè)值是否在 list 內(nèi)岁忘,使用 in辛慰。如果值存在,它返回 True干像,否則返為 False 帅腌。
# 從 list 中刪除元素
listA.remove(3) # remove 從 list 中 僅僅 刪除一個(gè)值的首次出現(xiàn)。如果在 list 中沒有找到值麻汰,Python 會(huì)引發(fā)一個(gè)異常
print listA.pop() # pop 它會(huì)做兩件事:刪除 list 的最后一個(gè)元素速客,然后返回刪除元素的值。
# 遍歷list
for item in listA:
print item