多维数组

nums1 = [1,2,3] #一维数组nums2 = [1,2,3,[4,56]] #二维数组nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组nums4 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] #四维数组print(nums2[3][1]) #56print(nums2[-1][-1]) #56print(nums3[4][5][1]) #'二'print(nums3[5][1]) #'五'print(nums3[-1][-1]) #'五'

list

list中可以放不同类型的值,list的下标从0开始。

#定义一个liststu_name = ['张三', '李四', '王五', 1, 1.5]print(stu_name) #打印list中全部内容print(stu_name[0]) #打印'张三'
len()length = len(stu_name) #list的长度,list中元素的个数 

list增加元素

append()insert()stu_name.append('朱六') #在list末尾添加一个元素stu_name.insert(0, '小军') #在指定位置插入一个元素print(stu_name)

list修改元素

stu_name[6] = '铲铲'print(stu_name)

list删除元素

pop()remove()delreverse()stu_name.pop() #删除最后一个元素stu_name.pop(4) #删除指定下标的元素stu_name.remove('小军') #删除指定的元素,有多个相同的元素,会删除第一个del stu_name[-1] #删除指定位置的元素,正数从正序开始,负数从倒序开始print(stu_name)

list查找元素

count()index()reverse()clear()my_list = ['小黑', '小白', 1, 1, 2, 1.5]print(my_list[-1])print(my_list[0])print(my_list.count(1)) #查询某个元素在list里面出现的次数print(my_list.index(1)) #查找元素的下标,多个相同元素取第一个,不存在的无素会报错print(my_list.reverse()) #直接打印结果为Noneprint(my_list) #输出时list被反转my_list.clear() #list被清空print(my_list)
sort()sort(reverse=True)nums = [9.23, 9, 3, 6, 1, 0]nums.sort() #从小到大排序nums.sort(reverse=True) #从大到小排序nums.extend(my_list) #把一个list里面的元素加入print(nums)new_list = nums + my_list + stu_name #合并print(new_list)print(new_list * 3) #复制几次

list练习

users = ['wrp','nhy','haha']#校验用户名是否存在for i in range(5):    username = input("请输入用户名:")    # 如果用户不存在的话,说明可以注册    #if users.count(username) > 0:    if username not in users: #in就是判断在不在里面        print("用户未注册,可以注册")        users.append(username)    else:        print("用户已经被注册")        
#最原始的list取值方式,通过每次计算下标来获取元素passwords = ['123456','123123','7891234','password']count = 0while count < len(passwords):    s = passwords[count]    print(s)    count+=1
passwords = ['123456','123123','7891234','password']#for循环直接循环一个list,每次循环取它的值得for p in passwords:    print(p)
#修改passwords中的内容passwords = ['123456','123123','7891234','password']index = 0for p in passwords:    passwords[index] = 'abc'+p    index+=1print(passwords)
#使用枚举函数,会计算下标和元素passwords = ['123456','123123','7891234','password']for index,p in enumerate(passwords):    passwords[index] = 'abc' + p    print(index, p)print(passwords)

切片
切片同样适合于字符串

l = ['a','b','c','d','e','f','g','h','i']print(l[0:3]) #顾头顾尾巴print(l[:5]) #如果冒号前没写,代表从0开始取print(l[4:]) #如果冒号后没有写,代表到结束print(l[:]) #冒号前后都不写,取全部print(l[0:8:2]) #从0开始,算上每隔2取一个nums = list(range(1,101)) #range()生成一个listprint(nums[1::2]) #取100以内的偶数print(nums[::2]) #取100以内的奇数print(nums[::-2]) #步长为正数,从左到右取,步长为负数,从右到左取

字符串切片

#字符串切片words = '中秋节要上课'print(words[::-1])for index,w in enumerate(words):    print(index, w)

回文算法

#回文算法,反过来倒过去都一样,如'上海自来水来自海上',12321for i in range(10):    str = input("请输入一个字符串:")        if len(str) < 1:            print("字符串长度必须大于是")    elif str == str[::-1]:        print("是回文")    else:        print("不是回文")

元组

元组不能被修改,如果元组只有一个元素,需要在定义后添加逗号,不然会认为括号是运算符
创建元组

tup1 = ()tup2 = (1,2,3,4,5,6)tup3 = ('google','baidu',1000,2000)tup4 = (50,)#元组中只有一个元素时,在后面添加逗号

访问元组

tup = ('google','baidu',1000,2000)print(tup[1])

修改元组

tup = ('google','baidu',1000,2000)tup1 = ('abc','xyz')tup3 = tup + tup1print(tup3)

删除元组

tup = ('google','baidu',1000,2000)del tup

元组运算

#元组运算print(len((1,2,3)))print((1,2,3)+(4,5,6))print(3 in(1,2,3))for x in(1,2,3):    print(x)tup =(1,2,3,4,5)len(tup) #求元组长度max(tup) #求元组中最大值min(tup) #求元组中最小值seq = [1,2,3,4,5]tup = tuple(seq) #将列表换为元组

字典

xiaojun ={    'name':'xioajun',    'age': 21,    'sex':'男',    'addr':'北京',    'phone':'13266568006'}

增加

stus = {}stus['name'] = '小军'stus['name'] = '海龙'stus.setdefault('name', '小帆') #如果这个key已存在,setdefault不会修改这个key的值stus.setdefault('age',  18)stus.setdefault('sex', '男')stus.setdefault('addr', '北京')stus.setdefault('phone', '1961231231')stus.update({'money':1000}) #将一个字典增加到stus中

修改

stus['name'] = '小鹏'

查询

print(stus['addr'])print(stus.get('sex','男')) #如果查不到,get()中第二个参数就返回默认值print(stus.keys()) #所有的keyprint(stus.values()) #所有的valuefor k in stus:    print(k, '===>',stus.get(k))for k,v in stus.items():    print(k, '====>', v)

删除

del stus['phone']stus.pop('addr')stus.popitem() #随机删除del stus #删除整个字典

字典多层嵌套取值

all_stus = {    'xiaojun':{        'name': 'xiaojun',        'age': 21,        'sex': '男',        'addr': '北京',        'phone': '13266568006',        'id': 1,        'cars':['牧马人','911','野马','劳斯莱斯'],    },    'hailong':{        'name': 'hailong',        'age': 21,        'sex': '男',        'addr': '北京',        'phone': '13266569006',        'id': 2,        'bags':{            'qianbao':['lv', 'ysl'],            'beibao':['coach','abc']        }    }}all_stus['xiaojun']['cars'].append('五菱宏光') #给xiaojun的car中添加值print(len(all_stus['xiaojun']['cars'])) #统计xiaojun中car的数量all_stus['hailong']['sex'] = '女'  #将hailong的sex改为女all_stus['hailong']['bags']['qianbao'].remove('lv') #删除bags中qianbao中的lvall_stus['hailong']['bags']['kuabao']=['bac'] #增加一个kuabaoall_stus['hailong']['bags']['kuabao'].append('lv2') #在kuabao中增加lv2all_stus['hailong']['bags'].pop('kuabao') #删除kuabao

字符串常用方法

password = ' 123456 \n 456789 'print(password.strip())  #默认去掉字符串两边的空格和换行符print(password.rstrip()) #右边的空格print(password.lstrip()) #左边的空格password1 = 'jpg 1233456789 .jpg'print(password1.strip('.jpg')) #掉去字符串两边的.jpgprint(password1.upper()) #转成大写print(password1.lower()) #转成小写print(password1.capitalize()) #把首字母改成大写print(password1.count('jpg')) #字符串出现的次数print(password.replace('谭爱玲','上山打老虎')) #找到了就替换字符串,找不到也不报错filename = 'a.mp3'print(filename.endswith('.mp3')) #判断是否以xxx结尾print(filename.startswith('196')) #判断以xxx开头#'{name},{age}'.format(name='hhh',age=18)names = '小军,海龙,杨帆,大朋'names1 = '小军 海龙 杨帆     大朋'print(names.split(',')) #以分隔符将字符串分割成listprint(names1.split()) #不指定时默认以空格切割