zoukankan      html  css  js  c++  java
  • 列表 字典

    一、列表

    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']}
  • 相关阅读:
    Linux NFS服务器的安装与配置
    mysql 批量更新的四种方法
    解决 RHEL 7/ CentOS 7/Fedora 出现Unit iptables.service failed to load
    linux 搭建svn
    MYSQL的慢查询两个方法
    Apache 配置虚拟主机三种方式
    MYSQL explain详解
    php操作memcache的使用【转】
    PHPExcel中open_basedir restriction in effect的解决方法
    微信浏览器禁止app下载链接的两种处理方法
  • 原文地址:https://www.cnblogs.com/baiby/p/10655483.html
Copyright © 2011-2022 走看看