• Python基础-list,tuple,dict,set常用方法及区别


    1,列表list

    列表定义方式

    lis1=[1,2,3,4]#一维数组

    lis2=[1,2,3,[4,5,6]]#二维数组

    依次多有多维数据,套几层就是几维数组

    列表的取值可以通过下标来,下标都是从0开始,对列表的增删改查;

       增:

    msg = '你好'
    name = ['andashu','cc','niuniu']
    name.append(msg)#从最后面开始插入
    name.insert(1,msg) #从指定位置插入,这个1代表下标
    print(name)
    改:
    msg = '你好'
    name = ['andashu','cc','niuniu']
    name[1] = 'baby' #修改指定位置的值
    查:
    msg = '你好'
    name = ['andashu','cc','niuniu']
    print(name[0])#获取第一个元素
    print(name[-1])#-1代表最后一个元素
    删:
    msg = '你好'
    name = ['andashu','cc','niuniu']
    name.remove('baby')#删除指定的值
    del name[0]#删除指定位置的值
    name.pop()#不传入下标的话,删除最后一个值,传入下标删除指定位置的值
    name.clear()#清空列表

    常用的内置方法:

    name = ['andashu','cc','niuniu']
    name2 = [1,2,3,4,['hehe','haha']]
    print(name.index('niuniu'))#取索引
    print(name.count('cc'))#取cc出现的次数
    name.clear()#清空列表
    print(name.sort())#排序,根据阿斯克码来排序
    print(name.extend(name2))#扩展列表,也就是把name2的值加到name里面
    name.reverse()#反转数组,会改变原数组的值

    list的取值也可以通过切片的方式:

    从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样

    names = ['andashu','cc','niuniu','amy','lily']
    names[1:4] #取下标1至下标4之间值,包括1,不包括4
    names[1:-1] #取下标1至-1的值,不包括-1
    names[0:3] #取下标0至3的值,不包括3
    names[:3] #取下标0至3的值,不包括3,和上面的效果一样,0可以省略不写
    names[2:]#取从第二个下标开始的后面所有元素
    #下面是加上步长的
    nums = [1,2,3,4,5,6,7,8,9,10]
    nums[::2]#这个代表取所有的元素,然后每隔2个元素取一个
    nums[1:8:3]#代表取第二个元素开始,到第八个结束,隔3个取一次
    2,元组tuple,
    元组的值是不能改变的,元组的定义用()圆括号,元组一般用来存放程序中不变的数据,例如jdbc的连接数据,元组的只有两个内置方法index(),count()
    3,字典dict
    字典是一种key-value的定义方式,用{},比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。
    字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔
       infos {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}
       infos['marry'#取marry的信息
       字典的特性:
      字典是无序的,因为它没有下标,用key来当索引,所以是无序的
      字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
    字典的增删改查:
    增:
    infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
    infos['andy'] = [22, 18712512981, '河北'] # 增加
    修改:
    infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
    infos['marry'] = [38, 18612512981, '北京']
    删除:
    infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
    infos.pop('marry') # 标准的删除方法
    del infos['marry'] # 使用del方法删除
    info.popitem() # 随机删除一个值
    查询:
    infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
    infos.get('maryy') # 获取marry的信息,这种方式如果key不存在的话,会返回None
    infos['marry'] # 获取marry的信息,这种方式如果key不存在的话,会报错
    'marry' in infos # 判断marry是否在这个字典中,返回True或者False
    字典的内置方法:
    dic = {'stu1': 'cc', 'stu2': 'andashu', 'stu3': 'niuniu'}
    print(dic.values()) # 打印所有value
    print(dic.keys()) # 打印所有的key
    print(dic.setdefault('stu1', 'fengluo')) # 如果这个key存在的话,那就不动它,不存在的话,添加一个
    dic2 = {'stu1': 'sriba', 'stu10': 'baidu'}
    dic.update(dic2) # 更新字典值,如果key存在的话,就更新,不存在的话就添加
    print(dic.items()) # 字典转换成一个list
    循环字典:
    dic = {'stu1':'cc','stu2':'andashu','stu3':'niuniu'}
    for k in dic:
    print(k,dic[k])#打印key和value的值,推荐使用这种方式,速度快
    4,集合set

    集合:

    集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据

    list = [2,3,1,2,3,4]
    s_list = set(list)#这样就定义了一个集合
    set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合
    set2={'hehe','hehe1','hehe3'}#这种方式是直接定义一个集合

    list1 = {1, 2, 3, 4, 5, 6, 9}
    list2 = {2, 3, 4, 6, 1}
    list3 = {1, 2, 3}
    print(list1.intersection(list2)) # 取交集,也就是取list1和list2中都有的
    print(list1 & list2)# 取交集
    print(list1.union(list2)) # 取并集,也就是把list1和list2合并了,然后去除重复的
    print(list1 | list2)# 取并集
    print(list1.difference(list2)) #取差集 在list中存在,在list2中没有的
    print(list1 - list2)
    print(list3.issubset(list1))#判断list3是不是list1的子集
    print(list1.issuperset(list3))#判断list1是不是list3的父集
    print(list1.isdisjoint(list3))#判断list1和list3是否有交集
    print(list1.symmetric_difference(list2))#对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉
    print(list1 ^ list2)
    list1.add(888)#添加元素
    list1.update([777,666,666])
    list1.remove(777)#删除元素,如果元素不存在会报错
    list1.pop()#删除一个随机的元素,并返回删除的元素
    list1.discard('dddd')#如果删除的元素存在,删除,不存在不做处理
  • 相关阅读:
    border-radius的8个属性值_画半圆、叶子等
    CSS的background简写方式(转)
    frameset左右栏锚点定位实例
    HTML5新增
    安装MSI报2503的错误
    当前标识(IIS APPPOOLDefaultWebSite)没有对“C:WindowsMicrosoft.NETFramework64v2.0.50727Temporary ASP.NET Files”的写访问权限 解决方案
    Windows设置相关性AFFINITY,修改使用核心数
    Yaml格式文件处理
    Vs2017离线安装包制作
    Vs2017常用快捷键
  • 原文地址:https://www.cnblogs.com/niuniu2018/p/7700462.html
Copyright © 2020-2023  润新知