baiby

一、列表

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

 

分类:

技术点:

相关文章: