zoukankan      html  css  js  c++  java
  • python学习4—数据结构之列表、元组与字典

    python学习4—数据结构之列表、元组与字典

    列表(list)深灰魔法

    1. 连续索引

    li = [1,1,[1,["asdsa",4]]]
    li[
    2][1][1][0]

    2. 其他数据结构转换为列表

      可以进行for循环的数据结构可以转换为List,数字不能循环则无法转换为列表

    li = "cbdualbvrhyacv"
    new_li = list(li)

    3. 列表转换为字符串,

      若列表里面既有数字,又有字符串,则需自己写for循环

    li = [123,"alex"]
    
    s = ""
    for i in li:
        s += str(i)
    
    print(s)

    若列表里只有字符串,则可以使用joint(),与空字符串joint

    li = [123,"alex"]
    
    new_li = "".joint(li)

    列表(list)灰魔法

    1. 在列表最后追加一个整体元素append(p_object)

    li = [11,22,33,44]
    
    li.append(5)
    li.append("alex")
    li.append([122,345])
    
    print(li)

    2. 清空列表clear()

    li.clear()

    3. 浅拷贝copy()

    v = li.copy()

    4. 计算某元素在列表中出现的次数count(value)

    v = li.count(22)

    5. 将某一可迭代对象里面的元素循环添加到列表里extend(iterable)

    v = li.extend([123,"cbeauilbv"])
    
    v = li.extend("cbaulyrv")

    6. 寻找列表中某元素的位置index(object)

    v = li.index(11)

    7. 指定索引位置插值insert(index,p_object)

    li.insert(0,99)

    8. pop(index)删除某个值并获取被删除的值,默认删除最后一个值

    v = li.pop()
    
    v = li.pop(0)

    9. 删除列表中的指定元素remove(object)

    li.remove(22)

    10. 翻转列表各元素reverse()

    li.reverse()

    11. 排序sort()

    li.sort()    #从小到大排序
    li.sort(reverse = True)    #从大到小排序

    元组(tuple)深灰魔法

    1. 元组定义

    tu = (111,"alex",(11,22),[(33,44)],True,256,11,22,)

    最好再定义元组的时候在最后一个元素末尾加个,以与函数赋值相区别

    2. 索引、切片

    tu[1]
    tu[0:3]

    3. 元组一级元素不可被修改,不能增加或删除

      但是,元组的某个可修改的二级以下元素可以被修改!!!!!

    tu[3][0] = 567

    4. 元组可以进行for循环

    for i in tu:
        print(i)

    注:由循环性可知,列表,元组,字符串之间可以相互转换

    元组(tuple)灰魔法

    1. 计算某元素出现的个数count(value)

    v = tu.count(11)

    2. 寻找某个元素的位置index(value)

    v = tu.index(22)

    字典(dict)深灰魔法

    1. 定义字典(dict)

    info = {
        "k1" : "v1",
        "k2" : "v2",
        5 : [11,22],
        "k4" : (11,22),
        "k5" : { "kk1" : "vv1",
                    "kk2" : "vv2",},
    }

    列表、字典不能作为字典的键

    布尔值、数字、字符串、元组可以作为字典的键

    布尔值:True = 1, False = 0

    若两个key相同,则只保留最后一个

    2. 字典是无序的,不可切片,通过key来索引

    v = info['k1']
    
    v = info[5]

    3. 删除键值对del 

    del info['k1']

    4. 字典可以进行for循环,默认循环key

    for item in info:
        print(item)
    
    for item in info.keys():  #循环key
        print(item)
    
    for item in info.values():  #循环value
        print(item)
    
    for k,v in info.items():  #键值对二者均循环
        print(k,v)

    5. in操作,默认循环键

    v = 'k1' in info    #True

    字典(dict)灰魔法

    1. clear()

    2. copy()

    3. 根据key取值,若不存在,可指定默认值get()

    v = info.get('k1',111111)  #存在,忽略111111
    
    v = info.get('k111',default)  #不存在,采用default值

    4. 取键keys()

    5. 取值values()

    6. 取键值对items()

    7. 删除pop()

    v = info.pop('k1')
    
    v = info.pop('k111',90)    #若不存在,可指定返回值为90

    8. 随机删除一个键值对popitem()

    k,v = info.popitem()  #返回被删除的键值对

    9. 设置不存在的键值对,若已存在则返回当前值setdefault()

    v = info.setdefault('k111','123')

    10. 更新update(),有两种写法

    info.update('k1':11111,'k5':123)
    
    info.update(k1=123, k2=456, k5=789)

    **kwargs,表示上述两种方式表达均可以

    **['k1':123,'k2':456]

    字典(dict)黑魔法(静态方法)

    1. 根据序列创建字典的键并可指定值dict.fromkeys()

    v = dict.fromkeys(['k1',123,'k4'],456)
  • 相关阅读:
    MM and Desinger
    db subsequent and synchronization(transfer)
    Thread concepts
    Threads concepts
    lucene article
    primary key
    lucene
    page procedure
    connection pool
    page procedures
  • 原文地址:https://www.cnblogs.com/yangjingxuan/p/11674521.html
Copyright © 2011-2022 走看看