关于元组的作用,见下面的代码。以下函数基本适用于列表#len:获取元组的长度t=(1,2,3,4,5)len(t)5#max,min:最大值和最小值print(max(t))print(min(t))51#tuple:转换或创建元组l=(1,2,3,4,5)t=tuple(l)print(t)t=tuple()print的函数(t)(1,2,3,4,5)()tuple和list基本一样#count:统计指定数据出现的次数t=(2,1,2,3,45,1,1,2,)print(t.count(2))#index:查找指定元素在元组中的索引位置print(t.index(45))#如果有多个数要查找,返回第一个Aprint(t.index(1))341元组变量交换方法二变量交换值#二变量交换值a=1b=3print(a)print(b)print("*"*20)#java程序成员会这样写:c=aa=bb=cprint(a)print(b)print("*"*20)#pythonwritinga,b=b,aprint(a)print(b)13********************31*********************13Set-setset是高中的概念数学博士erministic无序且唯一的数据,set中的每一个数据都成为一个元素#Set定义s=set()print(type(s))print(s)#这时候大括号里面一定要有值,否则是什么defined是一个dicts={1,2,3,4,5,6,7}print(type(s))print(s)set(){1,2,3,4,5,6,7}#如果只用大括号定义,则定义了一个dict类型d={}print(type(d))print(d){}的特征ofthecollection集合中的数据乱序了,即无法使用索引和分片。集合内部数据元素是唯一的,可以用来排除重复数据集合中的数据,比如str、int、float、tuple、frozencollection等,即内部只能放置可散列的数据设置序列操作#membershipdetection#in,notins={4,5,"i","love","you"}print(s)if"love"ins:print("Yes")if"haha"notins:print("Yes"){'you',4,5,'love','i'}YesYes集合遍历操作#forloops={4,5,"i","love","you"}foriins:print(i)you45lovei#设置遍历元组s={(1,2,3,),("i","love","you"),(4,5,6)}fork,m,nins:print(k,"--",m,"--",n)forkins:print(k)i--love--you4--5--61--2--3('i','love','you')(4,5,6)(1,2,3)集合的内涵#常见集合内涵#以下集合在初始化后自动过滤掉重复元素s={23,223,233,2,4,5,6,3,4,1,5,3}print(s)#generalsetintensionss={iforiins}print(ss){1,2,3,4,5,6,233,23,223}{1,2,3,4,5,6,233,23,223}#条件集sss={iforiinsifi%2==0}print(sss){2,4,6}#设置多重循环的内涵s1={1,2,3,4}s2={"i","love","you"}s={m*nformins2forn在s1}print(s)s={m*nformins2fornins1ifn==2}print(s){'you','youyou','love','lovelovelovelove','lovelovelovel','lovelove','iii','youyouyouyou','ii','i','iiii','youyouyou'}{'lovelove','youyou','ii'}聚合函数/aboutgather#len,max,min的函数:与其他基本函数一致s={23,54,72,3,5,3,3,6,1,543}print(len(s))print(max(s))print(min(s))85431#set:生成一个集合l={1,2,3,4,5,4,3,2,1}s=set(l)print(s){1,2,3,4,5}#add:添加元素到集合s={1}s.add(3)print(s){1,3}#clears={1,2,3,4,5}print(id(s))s.clear()print(id(s))#结果显示clear函数清除原位数据13707738435281370773843528#copy:copy#remove:移除指定值,直接改变原值,如果你要删除的值不存在,报错#discard:删除集合中的指定值和remove是一样的,但是如果你要删除,不报错s={23,4,3,5,1,2,3}s.remove(4)print(s)s.discard(1)print(s)print("*"*20)s.discard(100)print(s)s.remove(100)打印{1,2,3,5,23}{2,3,5,23}*********************{2,3,5,23}--------------------------------------------------------------------------KeyErrorTraceback(mostrecentcalllast)in12print(s)13--->14s.remove(100)15print(s)KeyError:100#pop随机删除一个元素s={1,2,3,4,5,6,7}d=s.pop()print(d)print(s)1{2,3,4,5,6,7}#聚合函数#交集n:交集#difference:差集#union:并集#issubset:检查一个集合是否是另一个子集#issuperset:检查一个集合是否是另一个超集s1={1,2,3,4,5,6}s2={5,6,7,8,9}s_1=s1.intersection(s2)print(s_1)s_2=s1.difference(s2)print(s_2)s_3=s1.issubset(s2)print(s_3)s_4=s1.issuperset(s2)print(s_4){5,6}{1,2,3,4}FalseFalse#设置数学运算s1={1,2,3,4,5,6}s2={5,6,7,8,9}#下面不支持s_1=s1-s2print(s_1)s_2=s1+s2print(s_2){1,2,3,4}----------------------------------------------------------------------TypeErrorTraceback(mostrecentcalllast)in7print(s_1)8---->9s_2=s1+s210print(s_2)TypeError:unsupportedoperandtype(s)for+:'set'and'set'frozenset:Frozen集冻结是一个不能以任何方式修改的操作。frozenset是一种特殊的set#creates=frozenset()print(type(s))print(s)frozenset()dictdictionarydictionary是数据的组合,组合数据没有序列,数据以键值对的形式出现#创建字典#创建空字典1d={}print(type(d))print(d)#创建空字典2d=dict()print(d)#创建一个包含值的字典,每组数字数据用冒号隔开,每对键值对用逗号隔开d={"one":1,"two":2,"three":3}print(d)#创建内容dictionarywithdict1d=dict({"one":1,"two":2,"three":3})print(d)#createadictionarywithdict2#使用key参数d=dict(one=1,二=2,三=3)print(d)#d=dict([("一",1),("二",2),("三",3)])print(d)<类'dict'>{}{}{'一':1,'二':2,'三':3}{'一':1,'二':2,'三':3}{'一':1,'two':2,'three':3}{'one':1,'two':2,'three':3}字典的特征字典是序列类型的,但是是无序的sequence,所以没有分片和索引字典中的每个数据都有一个key-valuepair,即kvpairkey:必须是hashablevalue,如:int,string,float,tuple,但不能是list,set,dictvalue:任意值字典的常用操作#访问数据d={"one":1,"two":2,"three":3}#注意访问格式#括号是键值打印(d["一"])d["一"]="eins"print(d)#删除一个操作#使用del操作deld["one"]print(d)1{'one':'eins','two':2,'three':3}{'two':2,'three':3}#membershipdetection:in,notin#membershipdetectiond={"one":1,"two":2,"three":3}if2ind中的关键内容:print("value")if"two"ind:print("key")if("two,2")ind:print("kv")key#在python2和python3中遍历的区别比较大,代码不通用#根据key值使用for循环d={"one":1,"two":2,"three":3}#使用for循环,直接按key值accessforkind:print(k,d[k])#上面的代码可以改写如下forkind.keys():print(k,d[k])#只访问字典的值对于d中的v。values():print(v)#注意d.items()中k,v的以下特殊用法:print(k,"--",v)one1two2three3one1two2three3123one--1two--2three--3字典生成d={"one":1,"two":2,"three":3}#常规字典生成dd={k:vfork,vind.items()}print(dd)#有限制的字典生成dd={k:vfork,vind.items()ifv%2==0}print(dd){'one':1,'two':2,'three':3}{'two':2}字典相关函数#通用函数:len,max,min,dict#str(dictionary):用于返回字典的字符串格式d={"one":1,"two":2,"three":3}print(str(d)){'one':1,'two':2,'three':3}#clear:清空字典#items:返回字典A的key由值对组成的元组格式d={"one":1,"two":2,"three":3}i=d.items()print(type(i))print(i)dict_items([('one',1),('two',2),('three',3)])#keys:返回由字典的keys组成的结构体k=d.keys()print(类型(k))打印(k)<类'dict_keys'>dict_keys(['one','two','three'])#values:同样,一个可迭代结构v=d.values()print(type(v))print(v)dict_values([1,2,3])#get:根据指定的key返回对应的值。好处是可以生成默认值d={"one":1,"two":2,"three":3}print(d.get("one"))#get默认值为None,你可以设置print(d.get("one",100))print(d.get("one33",100))print(d['on333'])None1100-------------------------------------------------------------------------KeyErrorTraceback(最近一次调用last)in8print(d.get("one33",100))9--->10print(d['on333'])KeyError:'on333'#fromkeys:使用指定的序列作为键,使用一个值作为字典中所有键的值l=["eins","zwei","dree"]#注意fromkeys的两个参数类型#注意fromkeys的调用体d=dict.fromkeys(l,"hahahahaha")print(d){'eins':'hahahahahaha','zwei':'hahahahahaha','dree':'hahahahahaha'}