python提供:字符串,列表,元祖三种序列
序列的成员有序排列,可以通过下标访问到一个或者几个成员类似C语言的一维数组和多维数组。
字符串、列表、元祖等序列类型具有:索引操作符和切片操作符
序列型的数据类型的每个元素都有一个标号用于标识其位置,从左至右依次是0,1,...,n,从右向左计数来存取元素称为负数索引,依次是-1,-2,...,-n。li[-n]==li[len(list)-n]
格式:
[切片开始位置:切片截止位置(但不包含)]
例:
l1=[1,1.3,"a"]
print l1[1:2]
l1=[1,1.3,"a"]
l2=[2]
print l1+l2
[1, 1.3, 'a', 2]
l1=[1,1.3,"a"]
print l1*2
[1, 1.3, 'a', 1, 1.3, 'a']
判断某个元素是否在序列中,可以使用in或not in运算符
l1=[1,1.3,"a"]
print 1 in l1
True
(1)len(seq)求出序列所包含的元素数量
(2)min(seq)求序列最小值
(3)max(seq)求序列最大值
(4)sum(seq[index1,index2])求序列中切片之间的和,序列元素必须是数值
1列表概念
有序,可以放不同数据类型的元素,用逗号分隔并放在一对中括号[ ]中。
2列表操作
概览:len,max,min,sum,count,index(一个对象首次出现的索引位置),reverse(所有元素的逆序),clear(清空列表),append(在列表末端插入对象),extend(在列表末端插入新列表的所有元素),del(移除给定索引位置上的元素),remove(移除一个对象的首次出现),insert(在给定索引位置上插入新元素),+,*,sort(对列表中的元素进行比较和排序,注:sort没有返回值,不能用在赋值语句中)
注:在执行del,remove方法后,列表中其他元素会依次往左移动一个位置。执行了insert后,列表中其他元素会依次向右移动一个位置
(1)创建列表:使用”=“将一个列表赋值给变量
(2)读取元素:用列表名加元素序列号访问列表中的某个元素
(3)修改list中的元素:只需直接给元素赋值
l1=[1,1.3,"a"]
l1[0]=2
print l1
[2, 1.3, 'a']
(4)增加元素:
方法一:+将一个列表附加在原列表的尾部
l1=[1,1.3,"a"]
l1=l1+[2]
print l1
[1, 1.3, 'a', 2]
方法二:append()方法向列表尾部添加一个新元素
l1=[1,1.3,"a"]
l1.append(True)
print l1
[1, 1.3, 'a', True]
方法三:extend()方法将一个列表添加在原列表的尾部
l1=[1,1.3,"a"]
l1.extend(['x',4])
print l1
[1, 1.3, 'a', 'x', 4]
方法四:使用insert()方法将一个元素插入到列表的任意位置。
l1=[1,1.3,"a"]
l1.insert(0,'x')
print l1
['x', 1, 1.3, 'a']
(5)检查元素:
使用count()方法计算列表中某个元素出现的次数
l1=[1,1.3,"a",'x',1]
print l1.count(1)
2
使用in运算符返回某个元素是否在该列表中
(6)删除元素
del删除某个特定位置的元素
l2=[1,1.3,"a",'x',1]
del l2[2]
print l2
[1, 1.3, 'x', 1]
remove删除某个特定值
l2=[1,1.3,"a",'x',1]
l2.remove('a')
print l2
[1, 1.3, 'x', 1]
pop方法(参数)弹出指定位置的元素,默认参数时弹出最后一个元素
l2=[1,1.3,"a",'x',1]
l2.pop()
print l2
l2.pop(1)
print l2
[1, 1.3, 'a', 'x']
[1, 'a', 'x']
3列表解析
对列表中的每个元素执行一个特定的函数。一个for循环可以,更简单的方式是列表解析
list2=[f(x) for x in list1]
list1 = {'2', '5', '6', '7'}
list2 = [int(x) for x in list1]
print(list2)
除了列表,列表解析也可以用在其他对象上,如:字符串,元祖,由range函数产生的算术表达式
print([ord(x) for x in "abc"])
print([x ** 0.5 for x in (4, -1, 9) if x >= 0])
print([x ** 2 for x in range(3)])
结果:
[97, 98, 99]
[2.0, 3.0]
[0, 1, 4]
三元祖
1元祖概念
元祖与列表相似,但其元素不可变。相当于只读列表
与列表相比,相同点:
(1)按定义的次数进行排序
(2)负数索引从元祖尾部开始计数
(3)也可使用分片
不同点:
(1)定义元祖用圆括号()不用方括号[]
(2)不能向元祖添加元素,元祖没有append和extend方法
(3)不能从元祖删除元素,没有remove和pop方法
(4)元祖没有index方法,但可使用in方法
(5)元祖可以在字典中被用作键,但是列表不行
元祖适用于只能进行遍历操作的运算,由于对数据进行“写保护”,使得代码安全,操作速度比列表快
2元祖操作
(1)访问元祖
tup=('a','b',1997,2000)
print tup[0]
print tup[0:2]
a
('a', 'b')
(2)元祖连接
用+号
(3)删除元祖
元祖中的元素值不允许删除,但可以使用del语句删除整个元祖
tup=('a','b',1997,2000)
del tup
print tup
Traceback (most recent call last):
File "/tmp/207442730/main.py", line 6, in
print tup
NameError: name 'tup' is not defined
exit status 1
四字符串
1字符串操作
(1)index
s='Python'
print s.index('P')
print s.index('h',1,4)
0
3
(2)find
s='Python'
print s.find('s')
print s.find('h',1)
print s.find('h',4)
-1
3
-1
(3)replace
s='Python'
print s.replace('h','1')
Pyt1on
(4)count
s='Python'
print s.count('h')
1
(5)split
split默认以字符串中的空格作为分隔符进行分隔,返回字符串组成的新字符串。
s='hello Python'
print s.split()
['hello', 'Python']
(6)join
fruits=['apple','banana','pear']
sep=';'
print sep.join(fruits)
apple;banana;pear
2字符串,列表,元祖转换
(1)字符串转换为列表,使用list()
str='123,45'
print list(str)
['1', '2', '3', ',', '4', '5']
(2)字符串转换为元祖,使用tuple()
str='123,45'
print tuple(str)
('1', '2', '3', ',', '4', '5')
(3)列表和元祖转换为字符串,必须使用join方法
l = ["hi","hello","world"]
print(" ".join(l))
print("".join(list(l)))
hi hello world
hihelloworld
五字典
1字典概念
相当于映射map,通过键值对key-value存储数据,具有极快的查找速度。
d={"zhou":95,"bob":88}
print d["zhou"]
95
字典通过用空间来换取时间,与列表比较:
(1)字段查找和插入的速度快,不会随着键的增加而增加
(2)字典需要占用大量内存
(3)字典是无序集合,字典中的值通过键来存取而不是偏移存取
字典有如下特性:
(1)字典的值可以是任意数据类型,包括字符串,整数,对象,甚至字典
(2)不允许同一个键重复出现,如果同一个键被赋值两次,那么后一个值会覆盖前面的值
dict={"zhou":96,"li":86,"zhou":95}
print dict["zhou"]
95
(3)键必须不可变,只能由数,字符,元祖,不能用列表
2字典操作
(1)字典元素访问
keys()方法返回一个包含所有键的列表
has_key()检查字典是否存在某一键
values()返回一个包含所有值的列表
get()根据键的返回值,如果不存在输入的键,返回None
items()返回一个列表,元素是由(key,value)组成的元祖
dict={"zhou":96,"li":86}
print dict.keys()
print dict.has_key("zhou")
print dict.values()
print dict.get("li")
print dict.items()
['zhou', 'li']
True
[96, 86]
86
[('zhou', 96), ('li', 86)]
(2)字典元素的删除
del()按键从字典中删除元素
clear()清除字典中的所有元素
pop()删除按关键字删除元素并返回它的值
dict={"zhou":96,"li":86,"laowang":666}
del dict["zhou"]
print dict
dict.pop("laowang")
print dict
dict.clear()
print dict
{'laowang': 666, 'li': 86}
{'li': 86}
{}
(3)update方法
update类似合并,把一个字典的键值合并到另一个字典,覆盖相同键的值。
tel={"laowang":1234,"zhangsan":1235}
tel1={"xulu":2268}
tel.update(tel1)
print tel
print tel1
{'xulu': 2268, 'zhangsan': 1235, 'laowang': 1234}
{'xulu': 2268}
(4)in运算
字典里的in运算用于判断某键是否在字典里,对于value值不适用
tel={"laowang":1234,"zhangsan":1235}
print "xu" in tel
False