Python 集合遍历

1.set集合

可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素

不可变集合(frozenset):与上面恰恰相反

Paste_Image.png

创建集合

>>> 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

更新集合
可使用以下内建方法来更新:
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 从一个 dictionary 中删除独立的元素
dict1.clear() # clear 从一个 dictionary 中清除所有元素

3.元组

Python中的元组(Tuple)类似于Java中的数组,一旦创建了一个 tuple,就不能以任何方式改变它。这点与Python中的字符串类似,所以我们说元组和字符串都是不可变的序列.元组也支持索引和分片操作.

#定义一个元组

tuple1 = (1, 2, '3', 4, '5')

# 定义了一个元组之后就无法再添加或修改元组中的元素
print tuple1[0] # 元组的元素都有确定的顺序。元组的索引也是以0为基点的
print tuple1[-1] # 负的索引从元组的尾部开始计数
print tuple1[1:3] # 元组也可以进行切片操作。对元组切片可以得到新的元组。

# 可以使用 in 运算符检查某元素是否存在于元组中。
print 1 in tuple1 # True

#使用for in 进行遍历元组
for item in tuple1:
 print item

# 如果需要获取item的序号 可以使用下面的遍历方法:
for index in range(len(tuple1)):
 print tuple1[index]

# 还可以使用内置的enumerate函数
for index, item in enumerate(tuple1):
 print '%i, %s' % (index, item)

4.列表

列表是Python中最具灵活性的有序集合对象类型,与字符串不同的是,列表可以包含任何种类的对象:数字,字符串,甚至是其他列表.并且列表都是可变对象,它支持在原处修改的操作.也可以通过指定的索引和分片获取元素.列表就可元组的可变版本.

定义一个列表使用一对中(方)括号” [ ] “.与元组不同的是, 列表有一些内置的函数对列表进行增加,修改和删除等操作.

#定义一个列表
listA = ['a', 'b', 'c', 1, 2]
# 向 list 中增加元素
# 1.使用append   向 list 的末尾追加单个元素。
listA.append(3)
# 2.使用 insert  将单个元素插入到 list 中。数值参数是插入点的索引
listA.insert(3, 'd') # 在下标为3处添加一个元素
# 3.使用 extend 用来连接 list
listA.extend([7, 8])
###  extend 和 append 看起来类似,但实际上完全不同。
### extend 接受一个参数,这个参数总是一个 list,
### 并且把这个 list 中的每个元素添加到原 list 中。
### 另一方面,append 接受一个参数,这个参数可以是任何数据类型,并且简单地追加到 list 的尾部。
# 获取列表的长度
print len(listA)  # 9
# 在 list 中搜索
listA.index(3)  # index 在 list 中查找一个值的首次出现并返回索引值。
listA.index('100')  # 如果在 list 中没有找到值,Python 会引发一个异常。
print 5 in listA  # 要测试一个值是否在 list 内,使用 in。如果值存在,它返回 True,否则返为 False 。
# 从 list 中删除元素
listA.remove(3)  # remove 从 list 中 仅仅 删除一个值的首次出现。如果在 list 中没有找到值,Python 会引发一个异常
print listA.pop()  # pop 它会做两件事:删除 list 的最后一个元素,然后返回删除元素的值。
# 遍历list
for item in listA:
    print item
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容