列表 字典
Posted baiby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表 字典相关的知识,希望对你有一定的参考价值。
一、列表
1.定义:
- stus = ["s1","s2","s3","s4","s5","s6","s7"] #List 列表 数组
用中括号定义,逗号隔开
stus2 = [] #空的列表
stus3 = list() #空的列表 【定义空的列表便于往里边添加数据】
2.增加:
-
stus.append("bai") #在list末尾增加一个元素
-
stus.insert(0,"yu") #在指定位置增加元素
-
stus.insert(9,"nn") #指定的下标不存在,那么会把元素插入到最后
print(stus)
运行结果:[‘s1‘, ‘s2‘, ‘s3‘, ‘s4‘, ‘s5‘, ‘s6‘, ‘s7‘, ‘bai‘]
:[‘yu‘, ‘s1‘, ‘s2‘, ‘s3‘, ‘s4‘, ‘s5‘, ‘s6‘, ‘s7‘, ‘bai‘]
3.查:
-
print(stus[3]) #单个取
print(stus[-1]) #取最后一个元素
4.改:
-
stus[0]="baibai"
print(stus)
运行结果:[‘baibai‘, ‘s2‘, ‘s3‘, ‘s4‘, ‘s5‘, ‘s6‘, ‘s7‘]
5.删除:
-
stus.pop() #默认删除list里面最后一个元素
stus.pop(2) #删除指定位置的元素
stus.pop(9) #删除指定不存在的元素,会报错
报错信息:IndexError: pop index out of range
-
del stus[0] #删除指定位置的元素
print(stus) -
stus.remove(‘s4‘)#删除指定名称的元素
print(stus) -
stus.remove(‘s5‘)#如果list里面有多个一样的元素,那么就只会删掉一个
stus.remove(‘gg‘)#删除不存在的元素,会报错
print(stus)
报错信息:
stus.remove(‘gg‘)
ValueError: list.remove(x): x not in list
6.list其他常用方法
-
new_stus = stus.copy() #复制一个新list
print(new_stus) -
count = stus.count(‘s5‘) #某个元素在list里面的数量
-
stus.clear() #清空list
-
news_stus = stus.copy() #复制一个
print(news_stus)
stus = [‘s1‘,‘s2‘,‘s3‘,‘s3‘,‘s4‘,‘s5‘,‘s5‘]
-
stus.reverse()#反转
print(stus)
运行结果:[‘s5‘, ‘s5‘, ‘s4‘, ‘s3‘, ‘s3‘, ‘s2‘, ‘s1‘]
stus = [‘1‘,‘2‘,‘4‘,‘3‘,‘9‘,‘14‘,‘5‘]
- stus.sort()#正序排序
print(stus)
- stus.sort(reverse=True) #倒序排序
print(stus)
运行结果:[‘1‘, ‘14‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘9‘]
[‘9‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘, ‘14‘, ‘1‘]
反转的运行结果:[‘5‘, ‘14‘, ‘9‘, ‘3‘, ‘4‘, ‘2‘, ‘1‘]
-
stus.extend(stus1) #把一个list的元素加入另一个list里面
print(‘extend‘,stus)
运行结果:extend [‘s1‘, ‘s2‘, ‘s3‘, ‘s3‘, ‘s4‘, ‘s5‘, ‘s5‘, ‘1‘, ‘2‘, ‘4‘, ‘3‘, ‘9‘, ‘14‘, ‘5‘]
-
result = stus.index(‘s8‘)#查找列表中某个元素的下标
print(result)
#查找列表中不存在的元素 会报错
7.多维数组
1 num1 = [1,2,3,4,[‘a‘,‘b‘,‘c‘,‘d‘]] #2维数组 2 num2 = [1,2,3,4,[‘a‘,‘b‘,‘c‘,‘d‘,[‘dev‘,‘test‘,‘pre‘]]] #3维数组 3 4 print(num2[4][4][2]) 5 运行结果:pre 6 7 列表循环 8 stus = [‘baibai‘,‘chenquan‘,‘niunihu‘] 9 第一种方法: 10 #username=‘‘ 11 password=‘123456‘ 12 #sql=‘insert into user(username,password) value ("%s","%s");‘%(username,password) 13 14 index = 0 15 while index < len(stus): 16 username = stus[index] 17 username = ‘szz-‘+ username 18 sql = ‘insert into user(username,password) value ("%s","%s");‘ % (username, password) 19 print(sql) 20 index+=1 21 22 运行结果:insert into user(username,password) value ("szz-baibai","123456"); 23 insert into user(username,password) value ("szz-chenquan","123456"); 24 insert into user(username,password) value ("szz-niunihu","123456"); 25 26 第二种方法:【最简单的方法】 27 stus = [‘baibai‘,‘chenquan‘,‘niunihu‘] #for循环直接循环一个list,就是取list里面的每一个元素 28 for stu in stus: 29 print(‘每次循环的值‘,stu) 30 username = ‘szz‘ + stu 31 print(username) 32 33 第三种方法: 34 l = list(range(3)) 35 print(l) 36 37 for i in range(len(stus)): #这种方法也相当于是用下标取值 38 username = stus[i] 39 print(username)
8.list练习:账户和密码登录
1 usernames = [‘baibai‘,‘yaya‘,‘cc‘,‘niuniu‘] 2 passwords = [‘123456‘,‘abc123‘,‘324324‘,‘45656‘] 3 4 #需要校验 用户不存在的话 要提示 5 #需要校验是否为空 6 #账户密码正确登录成功 7 8 #最多输入三次 9 #分析: 10 #1、输入账户密码 11 #2、校验是否输入为空 12 #3、校验账户否存在 list.count() 13 #4、从usernames里面找到user的下标,然后去password中去找对应的密码 14 today = ‘2019-03-25‘ 15 count = 0 16 while count < 3: 17 count+=1 18 #for i in range(3): #for和while都可以 19 username = input(‘username:‘).strip() 20 password = input(‘password:‘).strip() 21 if username == ‘‘ or password == ‘‘: 22 print(‘账户/密码不能为空!‘) 23 #elif usernames.count(username)==0: #判断元素的个数 24 elif username not in usernames: #两种方法都可以 判断元素是否在某个list里面 25 print(‘用户名不存在!‘) 26 else: 27 user_index = usernames.index(username) #登录用户的下标 28 p = passwords[user_index] 29 if password == p: 30 print(‘欢迎%s登录,今天的日期是%s.‘%(username,today)) 31 break 32 else: 33 print(‘密码错误!‘) 34 else: 35 print(‘错误次数已经用尽‘)
9.字典
1 stu_info = { 2 ‘username‘:‘baibai‘, 3 ‘password‘:‘123456‘, 4 ‘money‘:20, 5 ‘addr‘:‘北京‘ 6 } 7 8 #定义字典 9 d1 = {} #创建空字典 10 d2 = dict() #创建空字典 11 12 #增加元素 13 d1[‘name‘] = ‘胖妞‘ 14 d1[‘age‘] = 18 15 d1.setdefault(‘class‘,‘双子座‘) 16 print(‘之前的‘,d1) 17 18 d1.setdefault(‘age‘,‘38‘) 19 #如果使用setdefault,key已经存在了,就不会修改原来key的值 20 21 #修改 22 d1[‘name‘] = ‘胖妞2‘ 23 print(‘之后的‘,d1) 24 25 #取值 26 print(d1[‘name‘]) 27 print(d1.get(‘name‘)) 28 29 print(d1[‘y‘])#取一个不存在的key,报错keyError 30 print(d1.get(‘y‘))#取一个不存在的key,返回none 31 32 print(d1.get(‘kk‘,0))#不存在的值 返回0,默认返回none 33 34 print(d1.keys()) #取到字典里面所有的key 35 print(d1.values()) #取到字典里面所有的value 36 运行结果:dict_keys([‘name‘, ‘age‘, ‘class‘]) 37 dict_values([‘胖妞2‘, 18, ‘双子座‘]) 38 39 #删除 40 d1.pop(‘name‘) 41 del d1[‘name‘] 42 d1.popitem()#随机删除一个元素 43 print(d1) 44 45 d1.clear()#清空 46 print(d1) 47 运行结果:{} 48 49 d2 = {‘abc‘:1234} 50 d1.update(d2) #把字典2加到字典1里边 51 print(d1) 52 运行结果:{‘name‘: ‘胖妞2‘, ‘age‘: 18, ‘class‘: ‘双子座‘, ‘abc‘: 1234}
10.字典循环
1 stus =[ 2 {‘name‘:‘bai‘,‘age‘:‘17‘,‘addr‘:‘北京‘}, 3 {‘name‘:‘yaya‘,‘age‘:‘23‘,‘addr‘:‘上海‘}, 4 {‘name‘:‘hu‘,‘age‘:‘25‘,‘addr‘:‘北京‘}, 5 {‘name‘:‘wawa‘,‘age‘:‘26‘,‘addr‘:‘北京‘}, 6 ] 7 8 for stu in stus: 9 stu[‘phone‘]=‘110‘ 10 print(stus) 11 12 运行结果:[{‘name‘: ‘bai‘, ‘age‘: ‘17‘, ‘addr‘: ‘北京‘, ‘phone‘: ‘110‘}, {‘name‘: ‘yaya‘, ‘age‘: ‘23‘, ‘addr‘: ‘上海‘, ‘phone‘: ‘110‘}, {‘name‘: ‘hu‘, ‘age‘: ‘25‘, ‘addr‘: ‘北京‘, ‘phone‘: ‘110‘}, {‘name‘: ‘wawa‘, ‘age‘: ‘26‘, ‘addr‘: ‘北京‘, ‘phone‘: ‘110‘}] 13 14 stus = { 15 "白": 16 { 17 "house":[‘三环‘,‘四环‘,‘五环‘], 18 "car":{ 19 "日本":["雷克萨斯","英菲尼迪"], 20 "中国":["五菱宏光","红旗","比亚迪","宝骏"], 21 "美国":["福特","凯迪拉克"] 22 }, 23 "化妆品":{ 24 "SK-2":1000, 25 "YSL":2000 26 } 27 } 28 } 29 30 #统计一下白总用有多少辆车 31 #白又买了德国车2辆,奥迪,奔驰 32 #白的化妆品全被男朋友扔了 33 34 car = stus["白"][‘car‘] 35 36 count_car = 0 37 for c in car.values(): 38 count_car = len(c)+ count_car 39 print(count_car) 40 运行结果:8 41 42 car = stus["白"][‘car‘] 43 car["德国"]=["奥迪","奔驰"] 44 print(car) 45 运行结果:{‘日本‘: [‘雷克萨斯‘, ‘英菲尼迪‘], ‘中国‘: [‘五菱宏光‘, ‘红旗‘, ‘比亚迪‘, ‘宝骏‘], ‘美国‘: [‘福特‘, ‘凯迪拉克‘], ‘德国‘: [‘奥迪‘, ‘奔驰‘]} 46 47 del stus[‘白‘][‘化妆品‘] 48 print(stus) 49 运行结果:{‘白‘: {‘house‘: [‘三环‘, ‘四环‘, ‘五环‘], ‘car‘: {‘日本‘: [‘雷克萨斯‘, ‘英菲尼迪‘], ‘中国‘:[‘五菱宏光‘, ‘红旗‘, ‘比亚迪‘, ‘宝骏‘], ‘美国‘: [‘福特‘, ‘凯迪拉克‘]}}} 50 51 ###第二种增加车的方式,没有上边那种方便 52 car = stus["白"][‘car‘] 53 new_car ={"德国":["benchi","bmw"]} 54 car.update(new_car) 55 print(car) 56 运行结果:{‘日本‘: [‘雷克萨斯‘, ‘英菲尼迪‘], ‘中国‘: [‘五菱宏光‘, ‘红旗‘, ‘比亚迪‘, ‘宝骏‘], ‘美国‘: [‘福特‘, ‘凯迪拉克‘], ‘德国‘: [‘benchi‘, ‘bmw‘]}
以上是关于列表 字典的主要内容,如果未能解决你的问题,请参考以下文章