1.list
list的操作
#数组---list array
stus = [‘xiaohei‘,‘xiaobai‘,‘xiaolan‘]
#计算机取值是从0开始的
#0 1 2 3
#下标 角标 索引 都是指一个东西
#走后一个值可以用-1来表示
print(stus[2])#取第三个值
print(stus[-1])#取第三个值
#list的增删改查
#增
#append方法是在list末尾增加,一次只能加一个
stus.append(‘ybq‘)
print(stus)
#insert方法是在指定位置增加
stus.insert(0,‘mpp‘)#0是位置
print(stus)
#如果指定的下标不存在,那么就是在末尾增加
stus.insert(9,‘mpp‘)#9是位置,但不存在
print(stus)
#改
stus[0] = ‘ybq‘
print(stus)
#查
print(stus)
print(stus[1])
print(stus.count(‘ybq‘))#查看某个元素的个数,如果该元素不存在,返回0
print(stus.index(‘xiaohei‘))#找到某个元素的下标,如果有多个,返回第一个,如果元素不存在,会报错
#删
stus.pop(1)#默认删除最后一个元素,如果指定下标,删除指定的元素
print(stus.pop(1))#打印 删除的值
print(stus)
stus.remove(‘xiaohei‘)#直接写元素,如果有多个元素,只删一个
print(stus)
del stus[1]#删除指定下标的值
stus.clear()#清空整个list
#反转list
stus.reverse()
print(stus)
#
#排序,默认排序是升序
stus.sort()
stus.sort(reverse=True)#指定reverse=True,就是降序排列
print(stus)
#多维数组
#二维 三维 四维 。。。
all_num = [123,456,[789,10,11]]
three = all_num = [123,456,[789,10,11,[12,13]]]
print(all_num[2][1])#先找外边 再找里边
#
all_num.extend(three)#把两个list合并到一起
print(all_num)
list循环和切片
mun = [1,2,3,4,5,6,7,8,9,10]
print(mun[1:6:2])#步长 2的意思是隔两个取一个
print(mun[-1:-6:-2])#步长是正数的从左往右取,如果是负数的话,从右往左取,前面的值也必须写负数
#切片同样适用于字符串,字符串也有下标
title = ‘今天发红包 ‘#空格也算一个字符串
print(title[1])
print(title[1:3])
for t,h in enumerate(title): #enumerate可以同时循环下标和值
print(‘%s:%s‘%(t,h))#同时打印下标和值
2.字典操作
#字典是key-vlue形式的
d = {
‘name‘:‘ybq‘,
‘age‘:‘20‘,
‘addr‘:‘海淀‘
}
#特点:取值方便 速度快
print(d[‘name‘])#如果写了不存在的值,会报错
print(d.get(‘ag0e‘))#如果写了不存在的值,会返回none,
print(d.get(‘ag0e‘,‘dou‘))#如果写了不存在的值,在值后面写上数值,会返回所写数值dou,
#
#字典是无序的
#增
d[‘shengao‘]=198
d.setdefault(‘tizhong‘,130)
#
#改
d[‘shengao‘]=198
d.setdefault(‘tizhong‘,150)#这种方法不能修改值,只能新增
#
#删除
d.pop(‘shengao‘)
print(d)
d.popitem()#随机删除一个数值,没啥用,基本上用不到
del d[‘shengao‘]
#
d.clear()#清空字典
#获取所有key和value
print(d.keys())
print(d.values())
#
#
if ‘mane‘ in d:#判断字典中是否有此值
pass
#字典循环
for i in d:
print(i)
for k,v in d.items():
print(k,v)
print(d.items())
for k in d: #性能最好
print(k,d[k])
#强制类型转换
int()
str()
list()强制转换成list使用
res = list(d.items())
print(res[0])
3.元组操作
print(type(a))#查看是什么类型
b=(1,2,3,4,5)
#元祖也是一个list,只不过是不可变的,无法修改
b.count(1) #找个数
b.index(1) #返回下标
4.文件读写操作
f = open(‘读写记录.txt‘,‘a+‘,encoding = ‘utf-8‘)
f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
print(f.read())#读取文件里的全部内容
print(f.readline())#只读一行内容
print(f.readlines())#读取文件里的全部内容,把文件里的内容放到一个list里面
name = [‘ybq‘,‘yb‘]
f.write(name)#只能传字符串
f.writelines(name)#写的时候传入一个可迭代的对象即可,就是可循环的
f.truncate()#清空文件内容
f.tell()#查看当前指针位置
f.write(‘ybq‘+‘\n‘)
#循环
for i in f:
print(i)
f.close()
#flie() python2里面的方法
#文件打开有三种方式,如果打开的时候没有指定模式,默认是读
# 读 r
# r+ 读写模式,只要沾上r,文件不存在的时候打开都会报错
# 写 w 该模式会清空原有文件内容
# w+ 写读模式,只要沾上w,文件内容都会被清空
#追加 a
#追加读写 a+
5.字符串方法
#可变变量 list 字典
#不可变变量 元祖、字符串 值都是不能修改的
li = [1,1,2,3,4,5,6,7,8,9]
li2 = li[:]#深拷贝
li2 = li#浅拷贝
for i in li:
if i%2!=0:
li.remove(i)
print(li)
#在循环list的时候不能删东西,否则会导致下标改变,复制一份可解决该问题
#
id(li)#查看内存地址
print(id(li))
print(id(li2))
#字符串方法都不会改变原来的值
name = ‘besttest 发财 ‘
print(name)
print(name.strip()) #默认去掉两边的空格和换行符
print(name.strip(‘besttest‘))
print(name.lstrip())#去掉左边的空格和换行符
print(name.rstrip())#去掉右边的空格和换行符
print(name.count(‘t‘))#查找某个字符在字符串里的个数
print(name.upper())#把所有的大写字母都变成小写
print(name.lower())#把所有的小写字母都变成大写
#
na = ‘select * from‘
print(name.startswith(‘select‘))#判断字符串是以XX开始的
#
na = ‘1.jpg‘
print(name.endswith(‘.jpg‘))#判断字符串是以XX结尾的
#
f = ‘{name}欢迎光临‘
print(f.format(name=‘ybq‘))#格式化
#
f = ‘{name}欢迎光临‘
d = {‘name‘:‘ybq‘}
print(f.format_map(d))#字典形式格式化
#
print(name.replace(‘t‘,‘d‘))#字符串替换,第一个是旧的,第二个是新的
print(name.isdigit())#是否是数字
print(‘123‘.isdigit())#是否是数字
#
print(name.isalnum())#是否包含数字或字母
print(name.isalpha())#是否是英文字母
#
print(name.capitalize())#首字符大写
print(name.center(50,‘*‘))#字符串放中间,两边用*补齐
print(name.find(‘t‘))#找到这个字符,并返回下标,如果不存在的话返回-1
print(name.index(‘t‘))#找到这个字符,并返回下标,如果不存在的话报错
st = ‘a,b,c,d,e,f,g‘
st_list=st.split(‘,‘)#以逗号分隔字符串,什么都不写,按照空格分隔
print(st_list)
slist =[‘a‘,‘b‘,‘c‘]
sd = ‘,‘.join(slist)#以逗号连接字符串
print(sd)