Python第二节:列表、元组、集合、字典等数据类型的详解

Python第二节:列表、元组、字典、集合等数据类型的详解

本章概要

本节将介绍列表、元组、字典,三个数据类类型的使用方法

一、列表

列表是由一系列特定顺序排列的元素组成的,它的元素可以是任何数据类型即数字、字符串、列表、元组、字典、布尔值等等,同时其元素也是可修改的。

列表的基础操作:
list_01 = [2,3,43,2,5,34,321,23]
list_02 = [9,9,8,7,56]

1、查询,列表是有序排列的,可以通过其索引进行查询
print(list_01[1])         >>>>3
2、修改,通过索引值进行定位修改
list_01[0] = 1
print(list_01[0],list_01)      >>>>1,[1,3,43,2,5,34,321,23]
3、增加,直接在列表的最后添加值
list_01.append(55)
print(list_01)    >>>>[1,3,43,2,5,34,321,23,55]
4、插入添加,通过索引添加,原有的索引值后退位
list_01.insert(2,10)
print(list_01)    >>>>[1,3,10,43,2,5,34,321,23,55]
5、删除,通过索引删除
list_01.pop(3)
print(list_01)    >>>>[1,3,10,2,5,34,321,23,55]
6、通过值直接删除,有重复,就删除列表最左边的
list_01.remove(321)
print(list_01)    >>>>[1,3,10,2,5,34,23,55]
7、清空列表
list_01.clear()
print(list_01)    >>>>[ ]
8、查找索引值,通过值查询索引,有重复,就查询列表最左边的
print(list_02.index(9))   >>>>0
9、统计,通过列表中的值统计其个数
print(list_02.count(9))   >>>>2
10、两个列表进行合并,把一个列表并入另一个列表的后面
list_01.extend(list_02)
print(list_01)    >>>>[1,3,10,2,5,34,23,55,9,9,8,7,56]
print(list_01+list_02))    >>>>[1,3,10,2,5,34,23,55,9,9,8,7,56]
11、列表倒序来排列
list_01.reverse()
print(list_01)    >>>>[56,55,34,23,10,9,9,8,7,5,3,2,1]
12、列表正序来排列
list_01.sort()
print(list_01)    >>>>[1,2,3,5,7,8,9,9,10,23,34,55,56]
13、复制一个新的列表
list_03=list_01.copy()
print(list_03)    >>>>[1,2,3,5,7,8,9,9,10,23,34,55,56]
列表的切片:

list_04 = [1,2,3,5,7,8,9,9,10,23,34,55,56]
1、切取开始的一部分,从索引值0开始正向切
print(list_04[ : 4])     #取索引 [ 0,4 )之间的值,不包括4     >>>>[1,2,3,5]
2、切取中间一部分,从索引值非0开始正向切
print(list_04[ 3:6])     #取索引 [ 3,6 )之间的值,不包括6    >>>>[5,7,8]
3、切取最后的一部分,从索引值0开始逆向切,从0开始放过来数
print(list_04[-3 : 0])     #取索引 [-3 : 0 )之间的值,不包括0     >>>>[34,55,56]
4、切取中间一部分,从索引值非0开始逆向切
print(list_04[-5 : -2])     #取索引 [-5 : -2 )之间的值,不包括-2     >>>>[10,23,34]
5、按规定区间提取,就是按一定规格跳着取
print(list_04[::2])    #从索引值0开始,累加2的提取    >>>>[1, 3, 7, 9, 10, 34, 56]
print(list_04[:6:3])    #从索引值0开始,累加3的提取,最大到索引6,不包括6        >>>>[1, 5]
print(list_04[-8::3])  #从索引值-8开始,累加3的提取,最大到索引0,不包括0       >>>>[8, 10, 55]

二、集合

m = [1, 2, 3, 3, 5, 4333, 7, 288]
n={2, 3, 5,66}

jihe=set(m)     #python是个强转化的语言,列表可以直接转化为集合,没有排列顺序
print(jihe)   #集合是没有重复的值的,列表转化时就去重了        >>>>{288, 1, 2, 3, 5, 7, 4333}
print(list(jihe))  #集合也可强转化为列表    >>>>[288, 1, 2, 3, 5, 7, 4333]
1、添加元素
n.add(66)       n.add(5)
print(n)   #添加已有的元素,直接覆盖原有的                  >>>>{66, 2, 3, 5}
2、删除,通过值指定删除
n.remove(3)                          
print(n)                          >>>>{66, 2, 5}
3、随机删除一个值
print(n. pop())            >>>>{2,5}
4、差集:一个集合减去另一个集合与之共有的元素,且剩下的元素为之差集
print(set(m).difference(n))                              >>>>{1,4333, 7, 288}
print(set(m) - n)    # “-” 减号为之简写格式      >>>>{1,4333, 7, 288}
5、交集:取出两个集合共有的元素
print(set(m).intersection(n))                           >>>>{2,3,5}
print(set(m) & n)    # “&” 符号为之简写格式      >>>>{2,3,5}
6、子集:一个集合的元素在另一个集合内全部都有
print(n.issubset(set(m)))                          >>>>False
print(n <= set(m))        #   “<= ” 符号为之简写格式                   >>>>False
7、父集:一个集合包括了另一个集合内所有元素
print(set(m).issubset(n))                          >>>>False
print( set(m) >= n)        #   “>= ” 符号为之简写格式                   >>>>False
8、并集:把两个集合合并在一起,且出重
print(set(m).union(n))                              >>>>{288, 1, 2, 3, 5, 7,66, 4333}
print( set(m) | n)    #   “| ” 符号为之简写格式         >>>>{288, 1, 2, 3, 5, 7,66, 4333}
9、对称差集:把两集合的公有部分去掉,剩余的进行合并
print(set(m).symmetric_difference(n))                              >>>>{288, 1, 7,66, 4333}
print( set(m) ^ n)        #   “^ ” 符号为之简写格式                   >>>>{288, 1, 7,66, 4333}

三、元组

元组元组与列表类似,不同之处在于元组的元素不能修改、删除、添加

tuple=(1,2,4,5,7,9,33)       #元组是以小括号形式显示的

1、元素的查看:通过索引进行查看,类似列表,人家也是有序排列的
print(tuple[4])                              >>>>7
2、元组不能进行元素删除,单能删除整个元组
del tuple      #不会打印出任何东西
3、元组不能添加元素,但两元组能合并
print(tuple+(0,8,12,44))        >>>>(1,2,4,5,7,9,33,0,8,12,44)    
4、元组也能进行切片,形式跟列表一样
print(tuple[ : 3])                 >>>>(1,2,4)

四、字典

字典是一个容器模型,且可存储任意类型对象,是无序排列的。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的

info = {  'M001':"sanxing" , 'M002':"pingguo", 'M003':"xiaomi"}
info1 = {"M006":'lianxiang', 'M007':'bubugao', 'M003':'guge'}

1、查询:通过键查询其值
print(info["M001"])                                             >>>>sanxing
print(info.get("M001"))     #  这种查找,即使找不到,也不会报错的              >>>>sanxing
2、修改:通过键修改其值
info["M002"] = "huawei"
print(info["M002"] ,info)                   >>>>huawei, {  'M001':"sanxing" , 'M002':"huawei", 'M003':"xiaomi"}
3、新增:通过键新增其值,类似于修改,修改不了,就添加
info["M004"] = "pingguo"
print(info)                   >>>>{  'M001':"sanxing" , 'M002':"huawei", 'M003':"xiaomi","M004": "pingguo"}
4、删除
info.pop("M002")
del info["M001"]
print(info)                   >>>>{ 'M003':"xiaomi","M004": "pingguo"}
5、清空
info.clear() 
print(info)                   >>>>{ }
6、创建字典,浅一层创建
A = info.fromkeys([5,6,7])
print(A)                          >>>>{5: None, 6: None, 7: None}
7、字典转成列表
print(info.items())       >>>>dict_items([('M001', 'sanxing'), ('M002', 'pingguo'), ('M003', 'xiaomi')])
8、以列表的形式,打印键(keys)
print(info.keys())           >>>>dict_keys(['M001', 'M002', 'M003'])
9、通过键进行查询,找到就输出其值,找不到就添加到字典中
print(info.setdefault("M003"))          >>>>xiaomi
info.setdefault("M005")
print(info)                   >>>>{ 'M001':"sanxing" , 'M002':"pingguo", 'M003':"xiaomi","M005":None}
10、把字典dict2的键/值对更新到dict里,有同键的话,dict2的直接覆盖
info1.update(info)
print(info1)            >>>>{'M006': 'lianxiang', 'M007': 'bubugao', 'M003': 'xiaomi', 'M001': 'sanxing', 'M002': 'huawei' }
11、以列表返回字典中的所有值(values)
print(info.values())                  >>>>dict_values(['sanxing', 'pingguo', 'xiaomi'])
12、通过索引来对比,是否在字典中
print("M001" in info)                         >>>>True
13、两个列表合并成字典
print(dict(zip([1,2,3,4],['ab','ac','ad'])))                    >>>>{1: 'ab', 2: 'ac', 3: 'ad'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值