zoukankan      html  css  js  c++  java
  • python学习笔记(三)-列表&字典

    列表:

    一、列表操作
    """
    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
    比如,列出班里所有同学的名字,就可以用一个list表示:
    stus = ['xiaohei','xiaobai','xiaohuang','cxdser']
    索引(下标、角标)从0开始,0 1 2 3 4 5 6...。最后一个元素的下标可以写-1
    name = 'xiaohei,xiaobai,xiaohuang' 用字符串表示名字,但是多了不好查找
    id = 1
    #数组、list、array 都是指列表
    """
    创建列表

    stus = ['xiaohei','xiaobai','xiaohuang','xiaobai','cxdser']

    增加

    stus.append('曹操')#在list末尾增加一个元素
    print('append在list末尾增加一个元素:',stus)
    stus.append('曹仁')#在list末尾增加一个元素
    print('append在list末尾增加一个元素:',stus)
    stus.insert(3,'曹洪')#在指定位置添加元素
    print('指定在下标3位置添加元素:',stus)
    stus.insert(1000,'曹纯')#如果你指定的下标不存在,那么就是在末尾添加
    print('指定不存在的下标位置添加元素:',stus)

    修改

    stus[0]='曹休' #指定下标位置修改元素
    print('[X]指定下标位置修改元素:',stus)

    查看

    print('查看整个列表:',stus) #查看整个列表
    print('查看指定下标的元素:',stus[-1]) #查看指定下标的元素
    print(stus.count('hhaha')) #查看某个元素在这个里面的个数,如果该元素不存在,那么返回0
    print(stus.index('xiaobai')) #找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素,会报错

    list操作

    stus = ['xiaohei','xiaobai','xiaohuang','cxdser','xiaohei']
    stus.pop() #默认删除最后一个元素,如果指定下标,那么删除指定的元素
    print('pop删除最后一个元素:',stus)
    stus.remove('xiaohei') #删除list里面的一个元素
    print('remove删除指定元素:',stus)
    del stus[0] #删除指定下标的元素
    print('del删除指定元素:',stus)
    stus.clear() #清空整个list
    print('clear清空整个list:',stus)
    stus.reverse() #反转list
    print('reverse反转整个list:',stus)
    nums = [9,31,345,12,457,2352,12143,2321]
    nums.sort(reverse=True) #排序,默认排序是升序,如果指定了reverse=True就是按照降序拍
    print(nums)
    nums.sort() #排序,默认排序是升序,如果指定了reverse=True就是按照降序拍
    print(nums)

    多维数组
    二维数组 三维数组

    two_nums = [123,456,[789,10,11]] #二维数组列表
    print(two_nums[2][1]) #查看10
    three_nums = [123,456,[789,10,11,['hahaha','1234']]]
    print(three_nums[2][3][0]) #查看haha
    a = [1,2,3]
    b = [4,5,6]
    a.extend(b) #合并两个list,将b合并到a中
    print('合并后的列表',a)
    print(b)

    二、列表循环和切片
    列表循环
    如果直接for循环一个list的时候,那么每次循环的值都是这个list里面的元素

    names = ['haha','hehe','heihei']
    for name in names:
     print(name)

    切片

    nums = [1,2,3,4,5,6,7,8,9,10]
    print(nums[-1:-8:-1])#步长

    步长是正数的话从左往右取
    步长是负数的话从右往左取

    print('没有:7',nums[:6])

    切片同样适用于字符串,字符串也有下标

    title='今 天   发 苹 果 '
    print(title[:4])
    for i,t in enumerate(nums):  #enumerate可以同时循环下标和值
     print(i,t)

    就是list取值的一种方式

    print(nums[2:4])
    print(nums[:6])#如果切片前面一个值不写的话,从开头取
    print(nums[3:])##如果切片后面的值不写的话,取到末尾
    print(nums[:])#如果前面的值和后面的值都不写的话,那么全取过来

    切片是顾头不顾尾

    三、非空即真

    非空即真
    非0即真

    print(1>2)
    a=1
    b=2
    if a==b:
     print('xxx')

    字典:

    一、字典操作

    d  = { 'name':'曹操',
          'age':18,
          'sex':'',
          'addr':'昌平区',
          'money':10000000 ,
          'shengao':'200'
       }
    
    d.pop('shengao')#删除某个key
    print('pop删除指定key:',d)
    d.popitem()#随机删除一个
    print('popitem随机删除一个:',d)
    del d['shengao']
    print('指定key进行删除:',d)
    d.clear()#清空字典
    print('clear清空字典:',d)
    print('获取到字典所有的key:',d.keys())#获取到字典所有的key
    print('获取到所有的values:',d.values())#获取到所有的values
    d.has_key('addr') #python2里面字典有这个方法,有没有这个key
    
    if 'addr' in d: #判断key是否在这个字典里头
     print('addr')
    
    print('把字典的k和v转成一个二维数组:',d.items())#是把字典的k和v转成一个二维数组
    
    for k,v in d.items():#遍历字典并将k、v值打印出来
     print(k,v)
    
    res = list(d.items()) #把字典转成列表
    print(d.items())
    print(res[0]) #打印指定字段
    
    for k in d:  #用循环遍历字典,性能好
     print(k,d.get(k)) #打印k、V值,返回指定键的值,如果值不在字典中返回default值

    类型转换

    int()#int类型
    str()#转成字符
    list()#转成list
    
    d_list = str(d)
    print(d_list)

    二、字典嵌套

    stus = {
            'ybq': {
                    'age': 18,
                    'sex': '',
                    'addr': '昌平区',
                    'money': 10000000,
                    'jinku': {
                            '建行卡': 80000,
                            '工商卡': 800000,
                            '招商卡': 8000000
                            }
                    },
            'tlx': {
                    'age': 19,
                    'sex': '',
                    'addr': '昌平区',
                    'money': 10000000,
                    'huazhuangpin': ['chanle','haha']
                    },
            'mpp': {
                    'age': 19,
                    'sex': '',
                    'addr': '昌平区',
                    'money': 10000000,
                    "bag": {
                            'lv': '一车',
                            '鳄鱼':10
                            }
                    },
            'lcy':{
                    'age':18,
                    'sex':'',
                    'addr':'昌平区',
                    'money': 10000000,
                    'jinku':{'建行卡': 80000}
                    },
            }
    
    print('stus:',stus)
    print('ybq:',stus['ybq'])
    print('age:',stus['ybq']['age'])
    print('jinku:',stus['ybq']['jinku'].values())
    jk = stus['ybq']['jinku'].values()
    print('sum:',sum(jk))
    sum_money = 0
    for money in jk:
     sum_money = sum_money + money
    print('sum_money:',sum_money)
    
    print('打印haha:',stus['tlx']['huazhuangpin'][1])
    print('打印一车:',stus['mpp']['bag']['lv'])
  • 相关阅读:
    MySQL优化
    SLAM01
    图像处理04
    Be accepted for inclusion in the IEEE INFOCOM 2018 technical program
    CS229 Lecture 02
    图像处理03
    Codeforces 900D Unusual Sequences:记忆化搜索
    Codeforces 914C Travelling Salesman and Special Numbers:数位dp
    BZOJ 4199 [Noi2015]品酒大会:后缀数组 + 并查集
    BZOJ 4650 [Noi2016]优秀的拆分:后缀数组
  • 原文地址:https://www.cnblogs.com/lincy/p/8191143.html
Copyright © 2011-2022 走看看