python提供的容器 :列表(list),元组(tuple),集合(set),字典(dict)
列表
列表容器基于双向链表实现
列表定义:
- 由数据类型语言决定,直接将值赋给变量,如: ls = [2,3,4]
- 全局函数list:ls=list(); ls = list([2,3,4])
如何访问元素:使用下标来访问,下标从0开始。也可以使用下标直接对列表中元素进行修改 - 列表常见方法:
append() #向列表尾部追加元素
insert() #向指定的为止朱家元素
sort() #排序 int 类型
index() #查找元素第一次在列表中出现的是位置,如果元素不存在则抛出异常
reverse() #反转列表元素
remove() #通过元素来移除元素,如果元素不存在则抛出异常
count() #统计元素个数
clear() #清楚元素
copy() #浅拷贝对象
extend() #合并列表
pop() #删除最后元素,并返回这个元素
内置函数:
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
集合
创建一个集合:
s = set() #使用全局函数 set 来创建一个集合
s= set({1,3,4,5}) #创建集合并赋值
s ={ } #如果使用空的{}来创建一个对象该对象是字典,并不是集合,所以{}中至少要有一个元素,才是集合
集合是基于hash实现,不能重复,且无序。
常见方法:
add() #增加元素
difference() #差集
intersection() #交集
union() #并集
update() #更新集合,合并集合
discard() #移除元素,如果不存在, 则不做任何操作
元组
1、定义:
通过数据类型 t=(元素…)
tuple全局函数:tt = tuple();tt = tuple((元素…))
2、通过下标来访问元素
3、元素特点:元组是一个不可变类型,元组的元素一旦定义下来,则无法改变。虽然元组不可变,如果元组内部元素是可变类型,那么该元组就可变!!
字典
键值对形式存储,通过key来访问对一个的值(value),如果没有会报出异常。
字典对象[key]=新值
方法:
get() #返回 key 对应的值,如果没有该键,返回None
keys() #返回所有的键
values() #返回所有的值
setdefault() #设置默认值
items() #返回一个键值对
pop() #通过key删除键值对
popitem #移除一个键值对,移除规则是LIFO后进先出
字典遍历:
for k in d.keys()/d:
print(k,d.get(k))
for k,v in d.items():
print(k,v)
字符串
1、什么是字符串?
肉眼可以识别,具有特殊含义的字符组成串
2、如何表示(定义)字符串?
|–单引号
|–双引号
|–三引号
|–str(“字符串”)
3、字符串常见方法:
|----capitalize() #让字符串首字母大写(规范化每一段的第一句话)
|----center(width,[fillchar]) #设置字符串安装长度居中,fillchar默认是空格
count() #统计字符或字符串出现的次数
endswith() #判断字符串是否以xxx结尾
startswith() #判断字符串是否以xxx开头
ljust() #左对齐
rjust() #右对齐
index() #查找字符或字符串在字符串中第一次出现的位置,如果字符串不存在则抛出异常
rindex() #查找字符或字符串在字符串中最后一次出现的位置
find() #查找字符或字符串中第一次出现的位置,如果字符或字符串不存在,则返回-1
rfind() #查找字符或字符串在字符串中最后一次出现的位置,如果字符或字符串不存在,则返回-1
encode() #python3中将字符串转换为字节的方法
decode() #将字节转换为字符串
islower() #判断是否都是小写字母
isupper() #判断是否都是大写字母
istitle() #判断字符串是否是标题
isdigit() #判断是不是数字
join() #按照特定的符号,将一个可迭代对象拼接成字符串
split() #按照特定的符号将字符串切割,返回一个列表
strip() #去除字符串两侧空格
lstrip() #清楚左侧空格
replace(“原字符串”,“新值”) #替换对应的字符串
切片:
python提供用来切割可迭代对象(容器)
|–iterable[start:end:step] #从start位置开始切割,范围左闭右开。step 为步长。 切片范围值超越下标,不会报错,会返回一个空列表。
1、注意:使用切片进行数据分割是时候,第三个参数是步长,如果步长为正,则从左到右切。|–如果步长为负,则从右向左切,但是下标还是从左而右数的。
2、注意:同时python也提供 负索引(从右向左数,注意:最后一个元素是-1,倒数第二个是-2)
3、集合 并不能使用切片操作。
练习题:
返回路径的后缀名:path=‘D:\Temp\a.txt’
解:1、ls=path.split(".");ls[len(ls)-1]
2、path[path. rfind(".") +1:]