列表 字典

2019/04/13 09:00
阅读数 15

一、列表

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']}

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部