1.序列:序列就是一组按照顺序排列的值。
在python中存在三种内置的序列类型:字符串,列表,元组。
优点:支持索引和切片操作。
特点:第一个正索引为0,当索引为-1时,指向最后一个元素(-2则指向倒数第二个元素..依次类推)
切片:指截取序列的其中一段内容。语法:[起始下标:结束下标:步长]。切片截取的内容不包含结束下标对应的数据,步长指每隔几个下标获取一个字符。步长默认为1.
str='hello world'
print(str[1:5:1])
当结束下标为空时,表示一直到结尾
print(str[1::2])
当开始下标为空时,表示从开头开始
print(str[:5:2])
倒序输出,步长修改为-1
print(str[:5:-1])
2.字符串常用方法
capitalize() | 首字母变大写 |
endwith/startswith() | 是否以...结束/开始 |
find() | 检查...是否在字符串中,返回下标值,否则返回-1 |
isalnum() | 判断是不是字母和数字 |
isalpha() | 判断是不是字母 |
isdigit() | 判断是不是数字 |
islower() | 判断是否是小写 |
join() | 循环取出所有值用...连接 |
lower/upper | 大小写转换 |
swapcase | 大写变小写/小写变大写 |
lstrip/rstrip/strip | 移除左/右/两端空白 |
split() | 分割字符串 |
title() | 每个单词首字母变大写 |
replaced(old,new,count=None) | 将old替换成new,count为替换多少个,none为全部 |
count() | 统计出现的次数 |
#id()可以查看变量的内存地址
a='ggg'
b=a
print(b)
print("the address of a is {},the address of b is {}".format(id(a),id(b)))
#发现a,b的内存是一样的,这样只是将a的内存地址给了b
c="hhh"
d=''
for i in c:
d+=i
print(d)
print("the address of a is {},the address of b is {}".format(id(c),id(d)))
#通过遍历的方式我们会发现,c,d的值相同但内存地址不再相同
3.列表(list):是一种有序的集合,可以随时添加删除其中的元素。用[]来表示列表类型,数据项之间用逗号分隔,数据项类型可以不同。列表之间可以相互嵌套。
语法:list_name = ['a','b','c',......]
append() | 在列表后面追加元素 |
count() | 统计元素出现的次数 |
extend() | 追加列表,相当于批量添加 |
index() | 获取指定元素索引号,返回下标 |
insert() | 在指定位置插入 |
pop() | 删除指定元素,返回删除的元素 |
remove() | 移除左边找到的第一个元素 |
reverse() | 反转列表,也会永久改变原列表 |
sort() | 列表排序,reverse=True为倒序,会永久改变原列表 |
sorted() | 列表排序,保留原列表的顺序 |
len(list_name) | 返回数据个数,序列都可以用,包括str |
del | 删除指定索引所在元素 |
list1=[23,'ttef',90.45,True,"uaf"]
print(list1)
这会将方括号也打印出来
print(list1[3])
print(list1[1:4])
支持索引,支持切片
print(list1*3)#多次输出数据
list1=[23,'ttef',90.45,True,"uaf"]
list1.append("wawawa")
print(list1)
#利用append可以先创建空列表,list=[],再动态的添加进元素
list1.insert(1,'hello')
print(list1)
#range函数生成的是range类型的集合因此需要list()强制转换
rang_data=list(range(1,5))
list1.extend(rang_data)
print(list1)
del list1[1]
print(list1)
del_data=list1.pop(2)
print(del_data)
print(list1)
#批量删除,pop()不可以
del list1[0:2]
print(list1)
#根据值删除元素,但remove()只删除第一个出现的元素
to_del='wawawa'
list1.remove(to_del)
print(list1)
list2=['t','test','sgsgr','uufv','ahef']
list3=list2[::]
print(list2.index('test'))
list2.sort()
print(sorted(list3))
print(list3)
print('===================')
print(list2)
list3=list2[::]相当于生成了list2的副本
list2=['t','test','sgsgr','uufv','ahef']
for str in list2:
print(str,end=" ")
#遍历列表
for i in range(1,5):
...
list1=list2
#这样的语法使list1与list2关联到同一个列表,并不是只将list1的值给list2,应用list1[:]
4.元组:列表是可以修改的,而元组是不可以修改的,使用小括号()来定义。数据项之间用逗号分隔,可以是任何类型。严格来说,元组是由逗号标识的,所以当元组中只有一个元素时,要加上逗号,不然解释器会当整形处理。
yuanzu1=(3,4,5)
yuanzu2=(7,)
元组的遍历同列表一样
虽然不能够修改元组,但可以给元组重新赋值。
tuple1=(1,2,3,4)
print(tuple1)
tuple1=('a','b','c')
print(tuple1)
但内存地址会发生改变
tuple3=(1,2,3,[4,5,6])
当元组中有列表类型元素时,列表中元素可以发送改变
eg:tuple3[3][1]=999
tuple3=(1,2,3,[4,999,6]
index() | 查找指定元素的下标 |
count() | 统计个数 |
5.字典:字典是一系列键值对,每个键都有一个值关联。与键关联的值可以是数,字符串,列表或字典。python中用{}来表示字典。字典中的键不可重复,有重复的键后者会覆盖前者。字典不是序列,不支持下标和切片。
eg:dict={'color':'green','point':5}
访问:把键放在中括号内
dict={'color':'green','points':8}
print(dict['color'])
添加键值对:
dict={'color':'green','points':8}
dict['num']=56
dict['food']='apple'
print(dict)
修改:
dict={'color':'green','points':8}
dict['color']='yellow'
update也可以修改
删除:指定字典名与键
dict={ 'color':'green',
'points':8,
'food':'pie'
}
del dict['points']
print(dict)
pop(‘键’)方法也可以删除
使用get()来访问
当访问的键不存在时,不会报错而是返回一个默认值,get()的第一个参数为键,第二个则为不存在时返回的默认值,不设置则为None。
dict={'color':'green','points':8,'food':'pie'}
del dict['points']
value=dict.get('points','error')
print(value)
遍历字典:可声明两个变量,分别存储键和值
items()方法返回一个键值对列表
dict={'color':'green','points':8,'food':'pie'}
for i,j in dict.items():
print(i,j)
for item in dict.items():#此时会打印列表,item就是列表
print(item)
遍历字典中的键
dict={'color':'green','points':8,'food':'pie'}
for i in dict.keys():
print(i)
实际上,key()返回的是包含键的列表
遍历字典中的值:values()方法,但values()返回的会有重复值,可以将values()返回的值放入set()集合中,便可没有重复值。
dict={'color':'green','points':8,'food':'pie','num':8}
for i in dict.values():
print(i,end=' ')
print()
for j in set(dict.values()):
print(j,end=" ")
len()方法可以查看字典有几个键值对。
排序:sorted()
按照key来排
print(sorted(dict.items(),key=lambda d:d[0]))
按照value来排
print(sorted(dict.items(),key=lambda d:d[1]))
6.共有方法
+:适用于字符串,列表,元组,拼接作用。
str='345'
str2='rty'
str3=str1+str2='345rty'
list1=[1,2,3]
list2=[2,3,4]
list3=list1+list2=[1,2,3,2,3,4]
*:复制,适用于字符串,列表,元组
str='123'
str*3->'123123123'
in:检查对象是否存在,返回值为bool类型,适用于字符串,列表,元组,字典