zoukankan      html  css  js  c++  java
  • tuple,list,dict,set用法

    python基础

    复杂数据类型(数据结构)

    tuple:元组,使用小括号表示,包含若干个数据元素,可以为空,数据元素的类型可以为任意类型,它是不可变对象(创建后不可改变,不能增删改除)

    list:列表,使用中括号表示,包含若干个数据元素,可以为空,数据元素的类型可以为任意类型,它是可变对象,查询和插入效率很低,并且列表越长,查询和插入速度越慢,消耗内存空间小

    dict:字典,使用花括号表示,包含若干个键值对(Key-Value Pair,也称为-值对)数据,Key不能重复并且必须为不可变对象,具有极快的查询和插入速度,但会消耗大量内存空间,并且会随着长度增加而增加

    set:集合,使用花括号表示,和dict类似,只是不存放key,只存放value,无序且不重复

    NoneType:空类型,该类型只有一个值 None

    哲学

    时间和空间,相生相克

    切片操作(Slice Operation)

    获取str,bytes,tuple,list中的部分数据元素

    可变对象

    int,float,bool,str,bytes,tuple都是不可变对象,而list,dict,set等是可变对象

    常用内置函数

    min:求最小值

    max:求最大值

    扩展

    1.python不存在字符类型 ,都是字符串

    字符可以理解为是含有一个字符的字符串

    2.对变量赋值只是改变了它的指向

    msg = "abcdef"#msg[2] = "d"msg = "sadfvfd"msg = (1, 2, 3)

    3.遍历 将每个数据都访问一次,不重复

    4.vim注释多行

    ctrl + v 进入可视模式,上下移动选中想要注释的行,然后按大写的 I 键进入插入模式,输入#按esc退出即可

    list的用法

    #!/usr/bin/env python3

    #-- coding: utf-8 --

    s = 'dasfgdvsdgfgfa'

    for j in s:

    print(j,type(j))

    list1 = [1, 2, 3, 4, 5, 'a', 'b', 'c', '小花', True]

    for i in list1:

    print(i,type(i)) # 常用

    a = list1[-1]

    print(a)

    list1[3] = '小乔' # 列表赋值 注:与字符串类似,如果原有的列表被修改,就相当于一个新的列表

    print(list1) # 赋值的时候,是给原有的列表赋值

    b = list1[1:3] # 切片 范围取值

    print(b)

    c = list1[::2] # 步长

    print(c)

    list2 = [1, 2, 3, [4, 5, 6], [7, 8, 9]]

    d = list23

    print(d) #二维列表取值

    使用range创建一个列表 **

    list3 = list(range(1,20,2))

    list4 = list(range(20,1,-2))

    print(list3)

    print(list4)

    ########ID

    str1 = 'abc'

    print(str1, id(str1))

    str1 += 'def'

    print(str1, id(str1))

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

    print(list5, id(list5))

    list5[3] = 666

    print(list5, id(list5))

    list6 = list5 + [9, 8, 7]

    list7 = list5print(list6, id(list6))

    print(list7, id(list7))

    list8 = list5 * 3

    print(list8, id(list8))

    list9 = []

    list9.append('111') # 列表添加元素

    print(list9)

    list10 = [1, 2, 3, 4, 3, 3, 3,'delete', 'remove', 'pop']

    list10.remove(3) # 删除指定元素

    print(list10)

    list10.pop() # 通过索引删除

    print(list10) # 默认删除最后一个

    ####修改##反转

    list10.reverse()          #反转,将第一位元素与最后一位元素互换位置,第二位与倒数第二位互换依次类推

    print(list10)

    #####其他

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

    L = len(list12)

    print(L)

    L2 = max(list12)

    L3 = min(list12)

    print(L2)

    print(L3)

    #list12.clear() # 清空列表

    print(list12)

    list12.insert(3, 666)

    print(list12) #插入一个数据

    list12.extend([6, 7, 8]) # 在列表末尾一次性追加多个值

    print(list12)

    #####查找

    print(list12.index(2)) # 找元素所在的小标

    print(list12.count(2)) #查找元素出现的次数

    #####排序

    list12.sort() # 列表升序

    print(list12)

    list12.reverse() # 列表降序

    print(list12)

    L = [1, 3, 5, 7, 4]

    a = sorted(L, reverse = False)

    b = sorted(L, reverse = True)

    print(a)

    print(b)

    '''sort 与 sorted 的区别:

    sort 修改原始列表sorted 新建一个列表

    '''

    tuple元组的用法

    ###########tuple#特性:不可改变

    #开始定义成的样子就一直是什么样子

    t = (1, 2, 3, 4, 5)

    print(t, type(t))

    t2 = (1,) #如果只有一个元素,只需末尾添加一个逗号

    print(t2, type(t2))

    #用range 创建一个元组

    t3 = tuple(range(2,30))

    print(t3)

    for i in t:

    print(i)

    print(max(t3), min(t3), len(t3))

    print(t3.index(4))

    print(t3.count(5))

    #####元组与列表相互转换,即想改变元组,可以把元组转换为list,改变后再转换回来

    L = list(t3)

    print(L, type(L))

    t4 = tuple(L)

    print(t4, type(t4))

    #####排序

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

    s1 = tuple(sorted(t5, reverse = True))

    s2 = tuple(sorted(t5))

    print(s1)

    print(s2)

    #元组不可变,但元组里存放的列表里的元素是可以改变的,不受元组本身的影响

    t6 = (1, 2, 3, 4, 5, [1, 2, 3], [4 ,5, 6])

    #a = t6[5]

    #print(a, type(a))

    t65 = 666

    print(t6)

    dict字典的用法

    ######dict:字典,通过key-value(键-值)匹配数据的存在,完全不考虑位置#key:查询所需要的关键字,在同一个字典中不允许重复,key一般来说都是使用字符串

    d = {'A': 11, 'B': 22, 3: 33, 4: 44}

    print(d,type(d))

    d1 = d['B'] # 字典取值

    d2 = d[3] #使用列表取值[ 这是放的是key ]

    print(d1)

    print(d2)

    d2 = d.get('f') # 多用此方法取值

    print(d2)

    #使用列表取值,如果key没有,就会报错#使用get() 方法取值,如果 key没有 ,返回None

    #赋值

    d['B'] = 1111

    print(d)

    #删除

    #d3 = d.pop('A')

    #print(d)

    #for 循环

    for i in d:

    print(i)

    print(d[i])

    for k,v in d.items():

    print(k,v)

    set集合的用法

    #####set 无序的集合,没有重复的元素,可变的容器

    tmp = {1, 2, 3, 'good', 3}

    print(tmp, type(tmp))

    #增tmp.add('love') # 如果容器中的元素已经存在,不能添加进去

    print(tmp)

    #改tmp.update([4, 5, 6, 'blue']) # 可以将容器中的元素放到集合中,去掉重复的元素,然后将它转换回来

    print(tmp)

    #删

    tmp.remove('blue')

    print(tmp)

    #清空

    #tmp.clear()

    #print(tmp)

    #集合和列表的转换

    L = list(tmp)

    print(L)

    #去 重

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

    set1 = set(LL)

    print(set1)

    sss1 = {1, 2, 3, 5, 8, 9}

    sss2 = {2, 3, 4, 5, 6, 9}

    print(sss1 & sss2)#与

    print(sss1 | sss2) #或

    print(sss1 ^ sss2) # 非

    作业

    1.重点掌握list,dict,set的增删改差操作

    2.实现一个用于我们班的随机抽奖程序

     

  • 相关阅读:
    高可用架构案例一
    小程序页面可以放置转发按钮,同时开放了微信运动步数背景音乐播放等更多基础能力
    [今日干货]微博如何才能快速增粉?
    [今日干货]短视频获得种子用户的途径
    【今日干货】分享个微信解绑手机号的方法
    群用户通过微信小程序可以更好地协作了
    微信小程序首支视频广告片发布
    微信公众号可快速创建“门店小程序” 不用开发
    公众号和小程序可以同名了 名称支持同主体复用
    公众号群发文章支持添加小程序
  • 原文地址:https://www.cnblogs.com/yanruizhe/p/11214982.html
Copyright © 2011-2022 走看看