整体介绍一下我们学习的所有数据结构内容:.
- list
- Tuple
- Dist
- Sequence
- Set
-
Refer
以下分别介绍一下各组主要特点: - list 列表
列表 是一种用于保存一系列有序项目的集合,也就是说,你可以利用列表保存一串项目的序 列;使用方括号;
shoplist =['apple','mango','carrot','banana']
- Tuple 元组
元组(Tuple)用于将多个对象保存到一起。你可以将它们近似地看作列表,但是元组不能提 供列表类能够提供给你的广泛的功能。元组的一大特征类似于字符串,它们是不可变的,也 就是说,你不能编辑或更改元组。在指定项目时,你可以给它们加上括号(),并在括号内部 用逗号进行分隔。
zoo = ('python','elephant','penguin')
print('Number of animals in the zoo is ',len(zoo))
new_zoo = 'monkey','camel',zoo;
- Dist 字典
字典就像一本地址簿,如果你知道了他或她的姓名,你就可以在这里找到其地址或是能够联
系上对方的更多详细信息,换言之,我们将键值(Keys)(即姓名)与值(Values)(即地
址等详细信息)联立到一起。
可以使用
d = {key : value1 , key2 : value2}
# 'ab'是地址(Address)簿(book)的缩写
ab = {
'Swaroop' :'swaroop@qq.com',
'Larry' :'larry@163.com',
'Matsumoto':'matsumoto@aliyun.com',
'Spammer' : 'spammer@sina.com'
}
print("Swaroop's address is",ab['Swaroop'] )
- Sequence
列表、元组和字符串可以看作序列(Sequence)的某种表现形式;最主要使用in \not in和索引操作;
所提到的序列的三种形态——列表、元组与字符串,同样拥有一种切片(Slicing)运算 符,它能够允许我们序列中的某段切片——也就是序列之中的一部分。
shoplist[:] 返回的是整个序列
shoplist[1:3] 返回的序列的一组切片将从位置1开始,包含位置 2并在位置3时结束;
shoplist[:-1] 强返回一组序列切片,其中不包括序列的最后一项项目
shoplist[::2] 返回步长为2的串;
# 从某一字符串中切片 #
print("My name is ",name)
print('characters 0 to 1 is', name[0:1])
print('characters 1 to 3 is', name[1:3])
print('characters 2 to end is', name[2:])
print('characters 1 to -1 is', name[1:-1])
print('characters start to end is', name[:])
'''
My name is swaroop
characters 0 to 1 is s
characters 1 to 3 is wa
characters 2 to end is aroop
characters 1 to -1 is waroo
characters start to end is swaroop
'''
- Set
集合(Set)是简单对象的无序集合(Collection)。当集合中的项目存在与否比起次序或其出 现次数更加重要时,我们就会使用集合。 通过使用集合,你可以测试某些对象的资格或情况,检查它们是否是其它集合的子集,找到 两个集合的交集,等等。
集合使用set([xx,xx1,xx2])
>>> bri = set(['brazil', 'russia', 'india'])
>>> 'india' in bri True
>>> 'usa' in bri False
>>> bric = bri.copy()
>>> bric.add('china')
>>> bric.issuperset(bri) True
>>> bri.remove('russia')
>>> bri & bric # OR bri.intersection(bric) {'brazil', 'india'}
- Refer
主要注意如果是直接赋值是地址引用,对变量进行操作会影响原变量;需要使用切片赋值才不会出现这个现象。
mylist = shoplist;
mylist_slice = shoplist[:];
#注意以上区别即可。
#这个引用操作可以list\Tuple\Dist\set都可以;
#但是set是没有切片赋值的功能;所以在set里面赋值操作时需要小心;