基于python元祖与字典与集合的粗浅认识

yipeiwu_com6年前Python基础

一,元祖(tuple)

1.元祖是不能修改的,通常写成圆括号中的一系列项,位置有序,固定长度

2.实际上元祖支持字符串和列表的一般序列操作,“+”,“*”以及分片操作应用于元祖时会返回新的元祖

print((1,2)+(3,4))>>>>(1,2,3,4)
print((1,2)*4)>>>>(1,2,1,2,1,2,1,2)
T=(1,2,3,4)
print(T【0】,T【1:3】)>>>>(1,(2,3))

3.元祖不提供字符串,列表和字典的方法,入股你相对元祖进行排序,通常先得把它转换成列表才能获得使用排序方法的调用

T=(“z”,"b"."c")
tem= list(T)
tem.sort()
print(tem)>>>> ["b","c","z"]
T=tuple(tem)
print(T) >>>>("b","c","z")

但是元祖内部的列表是可以像往常那样修改的

T=(1,[2,3],4)
T[1].[0] ="ABC"
print(T)>>>>>(1,["ABC",3],4)

二.字典(dict)

1.字典是无序的,即你每次查询的结果数据排序是不一定的,因为它时key-value类型的数据,不需通过下标索引

2.对字典的操作:

D1={} #表示空字典
D2={“spam”:1,"app":2}#两项目字典
D3={"food":{"spam":1,"egg":2}}#嵌套
D2["app"]#通过键进行查找
D3["food"]["spam"]
"egg" in D3 #判断egg是否存在在D3中,存在则返回True
D2.keys()#查询key值
D2.values()#查询value值
D2[key]=44#表示新增或者修改,当字典中不存在这个key则新增,存在则是修改
del D2[key]#删除
D2 = {"egg",1,"app",2}
print(D2["app"])
>>>>>>>2
print(D2)
>>>>>>>{"egg",1,"app",2}
len(D2)
>>>>>>>2#返回的时keys的列表的长度

合并的方法:
D2 = {"egg",1,"app",2}
D3 = {"egg",1,"app",2}
D2.update(D3)
print(D2)
>>>>>>>{"egg",1,"app",2,"egg",1,"app",2}

pop删除的方法:能够删除字典一个键并返回它的值
D2 = {"egg",1,"app",2}
D2.pop(“egg”)
>>>>>>>>1
print(D2)
>>>>>>>>{"app",2}


另一种创建方法:条件是所有的key的值都是一样的
dict.fromkeys(["a","b"],0)
>>>>>>>>>{"a":0,"b":0}

三.集合(set)

集合是一个无序的,不重复的数据重合的。主要作用是用于

(1)去重;把一个列表变成集合,自动去除重复

(2)关系测试;测试两组数据之前的交集,并集等关系

相关操作

s1= set([1,2,3,4,5,6,7])
s2 = set([2,5,4,6,3,9])
print(s1.intersection(s2))#表示取交集
>>>>>>>>{2,4,5,6,3}
print(s1.union(s2))#表示取并集
>>>>>>>>{1,2,3,4,5,6,7,9}
print(s1.difference(s2))#表示差集
>>>>>>>>{7,9}
print(s1.isdisjiont(s2))#表示s与s2是否有交集
>>>>>>>>True
s1.add(10)#添加1个项
s1.update([8,9,10])#添加多个项
s1.remove(1)#删除一项,值为1(指定删除哪个,没有指定会报错)
s1.pop()#随机删除一个数

以上这篇基于python元祖与字典与集合的粗浅认识就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pytorch 修改预训练model实例

我就废话不多说了,直接上代码吧! class Net(nn.Module): def __init__(self , model): super(Net, self)._...

Python类方法__init__和__del__构造、析构过程分析

最近学习《Python参考手册》学到Class部分,遇到了类的构造析构部分的问题: 1、什么时候构造? 2、什么时候析构? 3、成员变量如何处理? 4、Python中的共享成员函数如何访...

解决phantomjs截图失败,phantom.exit位置的问题

刚刚学习使用phantomjs,根据网上帖子自己手动改了一个延时截图功能,发现延时功能就是不能执行,最后一点点排查出了问题。 看代码: var page = require('web...

pyinstaller打包程序exe踩过的坑

pyinstaller打包程序exe踩过的坑

基础环境 python 2.7.17 pyinstaller 3.5 安装pyinstaller pip install pyinstaller 坑,大坑,深坑 背景:...

Python-Flask:动态创建表的示例详解

今天小编从项目的实际出发,由于项目某一个表的数据达到好几十万条,此时数据的增删查改会很慢;为了增加提高访问的速度,我们引入动态创建表。 代码如下: from app_factory...