一、列表
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\']}