初学Python,对列表、元组、字典、集合概念有点混淆,做个笔记
(1)列表:列表是一个有序的集合对象类型,列表内的元素可以通过索引进行修改,也可以通过切片获取指定长度的列表数据,个人感觉Python的列表和Java语言中的List集合比较类似,其定义方式如下所示:
#coding=utf-8
#定义一个列表
list0 = [11,55,33,88,'a','b','c']
列表可以通过索引来修改某一个元素
list0[4] = 99 #此时list0为[11,55,33,88,99,'b','c']
#使用for in 遍历列表
for item in list0:
print item
(2)元组:元组一旦定义就不可变,他可以存储不同类型的对象,元组也可以进行切片操作,其定义如下所示:
#coding=utf-8
#定义一个元组
tuple0 = (1, 2, 3, 4, 5)
#tuple0[0] = 10 错误操作,元组一经定义不能修改
tuple0[0] # 表示元组第一个元素,元组的索引从0开始
tuple0[-1] # 表示元组最后一个元素,负的索引从元组的尾部开始计数
tuple0[1:3] # 切片操作
# 使用 in 检查某元素是否存在于元组中
print 1 in tuple0 # True
#使用for in 进行遍历元组
for item in tuple0:
print item
# 如果需要获取item的序号 可以使用下面的遍历方法:
for index in range(len(tuple0)):
print tuple0[index]
# 还可以使用内置的enumerate函数
for index, item in enumerate(tuple0):
print '%i, %s' % (index, item)
(3)字典:字典定义了键值对一一对应的关系,以无序方式存储,字典存储的值可以是任意数据类型,个人感觉它和Java语言里面Map集合比较类似
#coding=utf-8
# 定义一个字典
dict0 = {'city' : 'wuhan', 'weather' : 'rain', 'time' : '14:30'}
# 为一个已经存在的 dictionary key 赋值,将简单覆盖原有的值。
dict0['city'] = 'Shanghai'
dict0['weather'] = 'cloud'
#使用dict()创建字典
dict1 = dict((['name','zhangsan'],['age',22]))
#{'name','zhangsan','age',22}
#遍历字典
for key in dict0.keys():
if(key=='city'):
del dict0[key]
#dict.has_key(key)判断key是否存在
print dict0.has_key('city')
#True
#dict.get(key,default) 返回键值key的值,若是key不存在,返回默认值
print dict0.get('weather','null')
#cloud
#dict.pop(key)返回键值key的value ,删除原字典该减值
dict0.pop('time')
# del 从 dictionary 中删除键值为'sex'元素
del dict0['sex']
dict0.clear() # clear 从一个 dictionary 中清除所有元素
(4)集合:Python语言的集合是一个无序不重复的元素集,由于集合是无序的,所以集合不支持索引
#coding=utf-8
#定义一个集合
set0 = {1, 2, 3, 4, 5, 3, 4, 5}
print set0 #set([1, 2, 3, 4, 5])
# 添加新元素
set0.add(10)
s = {1,2,3,4,5}
t = {4,5,6,7,8}
#并集:返回一个新的 set 包含 s 和 t 中的每一个元素
print s.union(t)
print s | t
#交集:返回一个新的 set 包含 s 和 t 中的公共元素
print s.intersection(t)
print s & t
#差集:返回一个新的 set 包含 s 中有但是 t 中没有的元素
print s.difference(t)
print s - t
#返回一个新的 set,只在其中一个集合中出现的元素
print s.symmetric_difference(t)
print s ^ t
# 删除元素
set0.discard(10) # 当元素不存在时,不会引发异常
set0.remove(10) #如果没有要删除的元素,remove会引发一个异常
set0.pop() # 因为set是无序的,所以pop会随机的从set中删除一个元素
set0.clear() #删除集合set0中的所有元素