Python基础-列表、元组、字典、字符串
多维数组
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]) #56 print(nums2[-1][-1]) #56 print(nums3[4][5][1]) #'二' print(nums3[5][1]) #'五' print(nums3[-1][-1]) #'五'
list
list中可以放不同类型的值,list的下标从0开始。
#定义一个list stu_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() del reverse() 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()) #直接打印结果为None print(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 = 0 while 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 = 0 for p in passwords: passwords[index] = 'abc'+p index+=1 print(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()生成一个list print(nums[1::2]) #取100以内的偶数 print(nums[::2]) #取100以内的奇数 print(nums[::-2]) #步长为正数,从左到右取,步长为负数,从右到左取
字符串切片
#字符串切片 words = '中秋节要上课' print(words[::-1]) for index,w in enumerate(words): print(index, w)
回文算法
#回文算法,反过来倒过去都一样,如'上海自来水来自海上',12321 for 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 + tup1 print(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()) #所有的key print(stus.values()) #所有的value for 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中的lv all_stus['hailong']['bags']['kuabao']=['bac'] #增加一个kuabao all_stus['hailong']['bags']['kuabao'].append('lv2') #在kuabao中增加lv2 all_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')) #掉去字符串两边的.jpg print(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(',')) #以分隔符将字符串分割成list print(names1.split()) #不指定时默认以空格切割
users = ['username','user2','user3'] #username,user2,user3 print(str(users)) res = ','.join(users) #连接可以循环的元素,和split()相反,把list变成了字符串 print(res) #结果为username,user2,user3
print(s.find("z")) #找不到时返回-1 #print(s.index("z")) #找不到时报错 print(s.count("z")) #找元素个数 print('0'.isdigit()) #判断是否是正整数 print(s.islower()) #是否小写 print(s.isupper()) #是否大写 print('abc123'.isalnum()) #字符串中是否有英文或数字 print('abc'.isalpha()) #只能是字母 print(s.isspace()) #是否空格 print('1a123'.isidentifier()) #是否为合法的变量名 print(s.splitlines()) #以换行符分割分字符串
new_l = [] for i in l: si = str(i) new_l.append(si.zfill(5)) #zfill()用于位数补0,会补足括号中位数 print(new_l)
import string print(string.ascii_lowercase) #大写 print(string.ascii_uppercase) #小写 print(string.digits) #数字 print(string.punctuation) #特殊符号 print(string.ascii_letters) #大小写
相关推荐
reallyr 2020-04-08
文山羊 2020-05-26
坚持是一种品质 2020-11-16
zhaobig 2020-11-16
文山羊 2020-10-31
kikaylee 2020-10-31
oXiaoChong 2020-10-30
PYTandFA 2020-09-15
CloudStrife0 2020-08-23
hang0 2020-08-16
lzujiangge 2020-08-16
RocNg 2020-08-15
xiesheng 2020-08-06
Tristahong 2020-08-05
georgeandgeorge 2020-08-03
elizabethxxy 2020-07-27
flycony 2020-07-05