我们继续接着上一次没讲完的数据类型,来学习列表,元组和字典,以及一些常用字符串的操作方法。
一、列表
列表是python中最基本的数据结构。列表中的每个元素都有一个索引(也叫下标,角标,编号),第一个是0,第二个是1,以此类推,最后一个元素下标是-1。列表可以进行索引,切片,加乘,增,删,改,查(元组也可以)。它可以作为一个方括号内的逗号分隔值出现。
stus = ['张','赵','钱','孙'] #下标从0开始,可以根据下标来取值最后一个元素下标是-1
print(atus[-1])
列表的一些操作:
cities = []
1. 增
cityies.append('北京') #在列表末尾增加一个元素
cityies.insert(0,'上海') #在指定位置新增元素,不能为负数
print(citys)
2. 删
cities.pop(-1) #删除指定位置的元素
cities.remove('北京') #删除指定的元素
cities.clear() #清空list里面的元素
del cities[-1] #删除指定位置的元素
3. 修改
cities[1]='南京' #只能修改已有的下标,不然报错,下标越界
4. 查
print(cities[0]) #指定位置的
print(cities.index('广州')) #获取元素的下标
print(cities.count('广州')) #查看元素在list里面出现的次数
print(cities.reverse()) #反转list
nums = [2,9,4,78,12,524,354,21,6]
nums.sort() #排序,升序
nums.sort(reverse=Ture) #排序,降序
print(nums)
cities2 = ['深圳','厦门','成都']
print(cities2+cities) #合并list
print(cities*2) #复制list
多维数组--数组中嵌套数组
words = ['view','code','tools',['price','num',198,['hello','ok']]] #三维数组
5. 切片是list取值的一种方式
nums = ['koukou','peipei','lvlv','weiwei']
print(nums[1:2]) #顾头不顾尾,不包含后面下标的值
print(nums[1:]) #从某个下标开始取到末尾结束,末尾下标可以不写
print(nums[:2]) #从头开始取,到后面某个下表结束,那么开头的下表可以不写
print(nums[:]) #取list中所有值
lis = list(range(1,20))#生成1-19的
print(lis[::-1]) #步长,各几个取一次,默认为1,可用于反转list
# 用lis.reverse()反转会改变list的值,用步长反转产生了一个新的list,不会改变原来list的值
# 如果步长为正数,从左往右开始取值
# 如果步长为负数,从右往左开始取值
# 切片操作同样适用于字符串
info = '你好,今天天气很好'
print(info[:6:-1]) #-1倒序,开头没有取值,所以默认从右往左取值
# 可变变量
# 里面的元素可以修改
# list,tuple
# 不可变变量
# 里面的值不可修改
# string
6. list循环
lists = ['口口','蔻蔻','佩佩','培培','威武',[1,2,3,4]]
for name in lists:
if type(name)==list:
for i in name: # for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素
print(i)
print(neme)
二、 元组,元组也是一个list,但元组里面的元素无法修改,如果元组里面只有一个元素,元素后面必须加一个逗号
t = (1,2)
print(type(t))
循环切片:
print(t[:1])
下标取值:
for i in t:
print(t)
print(t)
三、 字典
字典是另一种可变容器模型,且可储存任意类型对象。字典的每个键值对key匹配一个或者多个value,用:分割,每个键值对之间用逗号分割,整个字典包括在{}中。字典是无序的。字典具有取数据方便,速度快的特点
字典的一些操作:
infos = {'neme':'11','name':'22','koukou':'33','rongrong':'荣荣'}
1. 查
print(infos.get('koukou'))#取不到这个key的话就是None
print(infos.get('koukou',110))#取不到这个key的话就默认110
print(infos['koukou'])#取不到这个key的话就报错
2. 增
infos['phone']=123456987 #增加一个key
infos.setdefault('小金库','2000w') #如果key存在,不会修改key值
infos['koukou']='口口'# 修改
print(infos)
# 字典是无序的
3. 删除
infos.pop('name')#指定key来删除
infos.popitem()#随机删除一个key
del infos['phone']#指定key来删除
infos.clear()#清空字典
print(infos)
4.修改
infos['name']='口口'
4. 常用方法
print(infos.values())#获取到字典所有的value
print(infos.keys())#获取到字典所有的key
print(infos.items())
# 直接循环一个字典的话,循环的是字典的key
for p in people:
print(p)
for k,v in people.items():#循环的时候同时取key和value
print(k,'=======>',v)
三、 常用字符串方法
a = ' 字 符 串 \n'
# c = a.strip() #默认去掉字符串两边的空格和换行符
c = a.lstrip() #默认去掉字符串左边的空格和换行符
c = a.rstrip() #默认去掉字符串右边的空格和换行符
print('c....',c)
print('a...',a)
words = 'http://www.nnzhp.cn day is a wonderfulday'
print(words.strip('day'))#如果strip方法指定一个值得话,那么会去掉这两个值
print(words.count('a'))#统计出现的次数
print(words.index('z'))#找下标,如果元素找不到的话会报错
print(words.find('z'))#找下标,如果元素找不到的话会返回-1
print(words.replace('day','DAY')) #替换字符串
print(words.isdigit())#判断字符串是否为纯数字
print(words.startswith('http'))#判断是否以某个字符串开头
print(words.endswith('.jpg'))#判断是否以某个字符串结尾
print(words.upper())#变成大写的
print(words.lower())#变成小写的
username = 'abcdef'
print(username.isalpha())#判断字符串是否全为字母
print(username.isalnum())#判断字符串是包含字母和数字,只要有字幕或者有数字就返回ture