• python学习之列表,元祖,字典


    python基础

    列表  [ ]

      stats =[1,2,3,4,5]

      元素1,2,3,4,5

      下标,索引,角标,初始从0开始

      增加 

        stats.append(7)#append方法添加
        stats.insert(6,"你好")#insert方法在指定位置添加  

      删除

        stats.pop()#默认使用pop方法删除最后一个元素

        stats.pop(1)#pop方法传一个指定下标删除元素,如果删除不存在元素会报错

        stats.remove("aa")#remove方法传一个指定元素删除,如果有多个同样元素只会删除第一个

        del stats[-1]#指定下标删除,-1表示最后一个元素

        stats.clear()#clear方法清空list  

    #方式一:
    #循环删list会导致下标错乱,最好新建一个一模一样的list
    list1 = [1,2,3,4,5]
    list2 = [1,2,3,4,5]  #也可以用这种方式 list1=list[:]浅拷贝; 切记不能用list1=list2=[1,2,3,4,5]深拷贝,其内存地址一样会出错
    for i in list2:
        if i%2 !=0:
            list1.remove(i)
    print(list1)
    
    
    #方式二:
    #倒着取下标就不会错乱了
    list1 = [1,2,3,4,5]
    for i in range(len(list1),-1,-1): #len(list1)-1:取0-5   -1:一直到-1   -1:步长为-1倒着取
        print(i)
        if i % 2 != 0:
            list1.remove(i)
    print(list1)

      修改

        stats[6]='aa'#查找下标直接修改赋值

      查看

        print(stats[0])#直接查询下标取值

        stats.count(“aaa”)#用count方法查询某个元素,来查看其元素出现的次数,如果不存在返回0

        stats.index(“aaa”)#用index方法查找元素下标,不存在报错

      内置方法

        stats.reverse()#用reverse方法翻转list,没有返回值

        stats.sort()#sort方法从小到大升序,最好全部数字,不然会报错

        stats.sort(reverse=True)#降序

        stats.extend(stats1)#把方法中的list加入到stats中,合并

        new_list = stats+stats1#合并,左前右后添加

        new_list = list_new * 3 #复制

      list与if应用

        if usename in users  #in判断一个元素在不在username里面,不在里面就是not in

      list与for应用

        password = [1,2,3,4,5]

        for p in passwords  #for循环一个list,循环就是每次取list的值

        for p,p1 in enumerate(passwords)  #enumerate()枚举函数   显示下标和具体值

        for q, a in zip(questions, answers) #遍历两个元素,同时进行遍历注意一 一对应

        for i in reversed(range(1, 10, 2)) # 将原来基础上的队列正序变成倒序

        for f in sorted(set(basket)) # 顺序的排列

      list循环嵌套    嵌套分为一维数组,二位数组,多维数组

        nums[1][1]#1表示下标,如果是-1是最后一个值的下标

      list切片 #list取值的一种方式,也同样可以用在字符串

        L=list(range(1,11))   #取1-10

        L[0:2]   #顾头不顾尾,切片中的值是下标   取1-3    L[:2]不写也可以

        L[4:”]    #取5-11值

        L[:]     #取全部

        L[::2]   #前面一致,最后表示步常,隔两个取一次   L=[a,b,c,d,e,f]    取b,d,f   如果最后步常是负数从最后取值,如果步常是-1,就是倒叙取值

    元祖   ( )    #可以取值,但元素不可删除不可更改,如要更改重新赋值,或者创建新的元祖tup3 = tup1 + tup2

      tup2 = (1, 2, 3, 4, 5, 6, 7 )

         删除

        del tup2  #删除整个元祖

      查询

         tup2[2]   #获取第二个元素

         tup[2:]    #或者切片截取

      #如果元祖只有一个如 tuple = (1),默认定义为一个变量1赋给tuple,所以在后面加括号,tuple = (1,)

    字典    { }   #以key,value形式体现,无序的,如果字典中存在两个相同的key,以最后一个为准

      stat={}   #空字典

      增加

        stat[a]=b          #常用

        setdefault(a,b)   #如果字典中key的值已经存在 ,setdefault不做添加

      删除

        del stat[a]     #删除key,value

        stat.pop(a)                #pop方法删除  

      修改

        stat[a]=c      #修改再一次赋值就可以了

      更新合并   

    a = {'id':1,'username': 'rainbol', 'password': '123456'}
    b = {'name': 'IBM', 'shares': 100, 'price': 91.1}
    方式一:
    setin
    = dict(a,**b)#这种方式有返回值 print(setin)#{'id': 1, 'username': 'rainbol', 'password': '123456', 'name': 'IBM', 'shares': 100, 'price': 91.1} 方式二: a.update(b)#update是把一个字典的内容添加到另外一个字典中,并且没有任何返回值 print(a)#{'id': 1, 'username': 'rainbol', 'password': '123456', 'name': 'IBM', 'shares': 100, 'price': 91.1}

      查询取值

        stats[a]      #直接取,可以print打印出来

        stats.get(a)     #get方法查询   如果没有返回none  不会报错,  stats.get(b,'adsad'),可以在后面加上一个默认值,如果没有取到,其得到结果就是一个默认值

        stats.keys()     #取keys值

        stats.value()    #取value值

      字典循环

        for k in stats:

          print(k)                #取key值

          print(stats[k])  #取value值

        for  i, j in stats.items():#items方法同时获取key,value

          print(k,v)    #取key和value的值

      字典嵌套

        a[b][c].append(d)

         转换成字典

      a = dict(sape=4139, guido=4127, jack=4098)#通过键值对
      print(a)
      # {'sape': 4139, 'guido': 4127, 'jack': 4098}
      b = dict([['sape', 4139], ['guido', 4127], ['jack', 4098]])#通过列表
      print(b)
      # {'sape': 4139, 'guido': 4127, 'jack': 4098}
      c = dict(((324,2342),(23,24)))#通过元祖
      print(c)
      # {324: 2342, 23: 24}
      d = {x: x**2 for x in (2, 4, 6)}#任意键和值创建字典
      print(d)
      # {2: 4, 4: 16, 6: 36}

       字典的更新合并

    #更新的两种方式

    方法一: portfolio = {'name': 'IBM', 'shares': 100, 'price': 91.1} setin = dict(a,**portfolio) print(setin)#{'id': 1, 'username': 'rainbol', 'password': '123456', 'name': 'IBM', 'shares': 100, 'price': 91.1}

    方法二: a.update(portfolio)#update是把一个字典的内容添加到另外一个字典中,并且没有人任何返回值 print(a)#{'id': 1, 'username': 'rainbol', 'password': '123456', 'name': 'IBM', 'shares': 100, 'price': 91.1}

       有序字典  python在最新版本中以后字典会更加靠近有序字典的方式获取值,但是在低版本中还是不支持的,所以更加变通一些可以使用一个模块来使字典变成有序的

    from collections import OrderedDict
    info = OrderedDict()
    info['k1'] = 'hello1'
    info['k2'] = 'hello2'
    info['k3'] = 'hello3'
    for k,v in info.items():
        print(k,v)
    #有序的意义在于先进先出的原则,而不是排序的顺序
    # k1 hello1
    # k2 hello2
    # k3 hello3

    版权声明:本文原创发表于 博客园,作者为 RainBol 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

  • 相关阅读:
    Apache 的 ab 压测工具快速使用
    Go_22: Golang 命令行 test 应用
    Go_21: Golang 中 time 包的使用二
    ElasticStack系列之十八 & ElasticSearch5.x XPack 过期新 License 更新
    Go 语言编程规范
    ElasticStack系列之十七 & 大文本搜索性能提升方案
    ElasticStack系列之十六 & ElasticSearch5.x index/create 和 update 源码分析
    ElasticStack系列之十五 & query cache 引起性能问题思考
    golang 配置文件读取
    pandoc安装
  • 原文地址:https://www.cnblogs.com/RainBol/p/9537193.html
Copyright © 2020-2023  润新知