列表 字典

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

 

以上是关于列表 字典的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第40篇):通过两个列表生成字典

将一个嵌套字典中的选择项追加到另一个

Python snippet(代码片段)

Python代码阅读(第19篇):合并多个字典

如何从片段内的列表视图打开链接网址?

如何使列表视图出现在片段中?