python之元组字典及set类型
2017-08-14 16:34
190 查看
python之元组
tuple:元组本质:是一种有序集合
特点:1.和列表非常相似
2.一点初始化,就不能修改
3.使用小括号
1.创建tuple
格式:元组名 = (元组元素1,元组元素2,……元组元素n)
tuple1 = () #创建空元组 tuple2 = (1,2,3,"goog",True) #创建有元素的元组,元组中元素的类型可以不同 print(tuple1) print(tuple2) ------------------------------ output:() (1,2,3,"goog",True)
2.定义只有一个元素的元组
定义一个元素的元组一定要加逗号,来标志是一个元组而非其他数据类型
tuple3 = (1,) tuple4 = (1) print (tuple3) print (tuple4) ptint(type(tuple3)) ptint(type(tuple4)) ----------------------- output: (1,) (1) <class 'typle'> <class 'int'>
3.元组元素访问:
格式:元组名[下标] 下标超出范围(越界)会报错
tuple = (1,2,3,4,5) print(tuple[0]) print(tuple[-1]) ---------------------------- output: 1 5
4.修改元组
元组是无法修改的
tuple5 = (1,2,3,4,5) tuple5[0] = 100 print(tuple[0]) ----------------------- output:报错 元组不可变
虽然元组不可变,但元组里的list可变,故实际上是元组的地址不可变。但地址指向的内容是可以变得
tuple5 = (1,2,3,4,5,[6,7,8]) tuple5[-1][0] = 100 print(tuple) ----------------------- output:(1,2,3,4,5,[100,7,8])
5.删除元组:
将元组整个删除
tuple6 = (1,2,3) del tuple6
6.元组的操作
t7 = (1,2,3) t8 = (4,5,6) print(t7 + t8) print(t7,t8) --------------------- output:(1,2,3,4,5,6) (1,2,3),(4,5,6)
7.元组重复:
t10 = (1,2,3) print(t10 * 3) ---------------------- output:(1,2,3,1,2,3,1,2,3)
8.元素是否在元组里
t11 = (1,2,3) print(4 in t11) ----------------------- output:flase
9.元素截取:
格式:元素名[开始下标:结束下标]
从开始下标快开始截取,截取到结束下标截取之前。
t12 = (1,2,3,4,5,6,7,8,9) 0,1,2,3,4,5,6,7,8 print(t12[3:7]) ------------------- output:(4,5,6,7)
10.二维元组
t13 = ((1,2,3),(4,5,6),……,()) print(t13[1][1]) ------------------------- output:5
11.元组的方法:
t14 = (1,2,3,4,5) len():返回元组中元素的个数 print(len(t14)) max():返回元组的最大值 min():返回元组的最小值 print(max((5,6,7,8,9))) print(min((5,6,7,8,9))) ------------------------ output: 5 9 5
12.列表转换为元组
list = [1,2,3] t15 = tuple(list) print(t15) ----------------------- output:(1,2,3)
python之字典
概述:使用键值(key-value)存储,具有极快的查找速度,但字典是无序的。一个字典里可能有多个键值对key的特征:
1.字典中的key必须唯一
2.key必须是不可变得对象
3.字符串、整数等都是不可变得,可以作为key
4.list是可变的,不能作为key
1.创建字典:
dict1 = {“tom”:60,”lilei”:70}
2.元素的访问:
获取:
1)获取value值:格式:字典名[key]
2)判断key的是否存在:格式:dict.get(key)
dict1 = {"tom":60,"lilei":70} print(dict1["lilei"]) ret = dict1.get("tom") if ret == None: print("没有") else: print("有") 输出: 70 有
2.添加:
格式:dict[key] = value(key不存在字典里)
修改:dict[key] = value(key存在字典里)
因为一个key对应一个value,所以多次对一个key的value赋值,其实就是修改值
dict1 = {"tom":60,"lilei":70} dict1["hanmeimei"] = 99 #创建 dict1["lilie"] = 80 #修改 print(dict1) 输出: {'tom': 60, 'lilei': 70, 'hanmeimei': 99, 'lilie': 80}
3.删除:
格式:dict.pop(key)
dict1 = {"tom":60,"lilei":70} print(dict1.pop("tom")) print(dict1) 输出: 60 {'lilei': 70}
4.遍历:
dict1 = {"tom":60,"lilei":70} for key in dict1: print(key,dict1[key]) 输出: tom 60 lilei 70 for volue in dict1.values(): print(volue) 输出: 60 70 for k,v in< 4000 /span> dict1.items(): print(k,v) 输出: tom 60 lilei 70 for i,v2 in enumerate(dict1): print(i,v2) 输出: 0 tom 1 lilei
和list比较:
1.查找和插入的速度极快,不会随着key-value的增加而变慢。
2.需要占大量的内存,内存浪费多
list
1.查找和插入的速度会随着数据的真多而减慢
2.占用的空间少,浪费内存小
查询某个单词出现的次数:
word = input("请输入查询单词:") dict = {} str = "So STR, which I just typed up there, takes in parens, some input, and it converts it into a string, so that now I can use that John where I was expecting a string. John " list = str.split(" ")#将其转换为列表 for v in list: num = dict.get(v) if num == None: dict[v] = 1 else: dict[v] += 1 print(dict[word])
逻辑:
1.以空格切割字符串
2.循环处理列表中的每个元素
3.以元素当做key去字典中提取数据
4.如果没有提取到,就以该元素作为key,1作为value存在字典里,
5.如果没提取到,将对应的key的value修改,值加1
6.根据输入字符串当做key再去字典取值
python之set
set:类似dict,是一组key的集合,不存储value本质:无序无重复元素的集合,重复元素在set中自动过滤
1.创建
创建set需要一个list或者tuple或者dict作为输入集合
格式:set()
s1 = set([1,2,3,4,5]) s2 = set([1,2,3,4,5,1,2,3,4,5]) # s2=set((1,2,3,4,5,1,2,3,4,5)) s3 = set({1:"good",2:"nice"}) print(s1) print(s2) print(s3) --------------------------------- out: {1, 2, 3, 4, 5} {1, 2, 3, 4, 5} #去重作用 {1, 2} #set是无序的而且无法存储value
2.添加:
格式:set.add(a)
s4 = set([1,2,3,4,5]) s4.add(6) #out:{1, 2, 3, 4, 5, 6} s4.add(3) #out:{1, 2, 3, 4, 5, 6} #可以添加重复的,不会报错,但也不会有效果 s4.add([7,8,9])#报错,列表可变,故set的元素不能是列表 s4.add((7,8,9)) s4.add({1:"a"})#报错,字典可变,故set的元素不能是字典
3.插入整个list/tuple/str,打碎插入
格式:set.update(list/tuple/str)
s5 = set([1,2,3,4,5]) s5.update([6,7,8]) s5.update((9,10)) s5.update("tom") print(s5) -------------------------------- out: {1, 2, 3, 4, 5, 6, 7, 8} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 't', 'o', 'm'}
4.删除:
格式:set.remove(a)
s6 = set([1,2,3,4,5]) s6.remove(3) print(s6) --------------------- out: {1, 2, 4, 5}
5.遍历:
set没有索引的
print(set[3])###会报错!!!!
s7 = set([1,2,3,4,5]) for i in s7: print(i) --------------------------- out:1 2 3 4 5
6.交并集
1)交集
格式:set1&set2
s8 = set([1,2,3]) s9 = set([2,3,4]) a1 = s8 & s9 print(a1) print(type(a1)) -------------------- out:{2, 3} <class 'set'>
2)并集
格式:set1 | set2
a2 = s8 | s9 print(a2) print(type(a2)) --------------------- out:{1, 2, 3, 4} <class 'set'>
7.类型转换:
#list->set l1 = [1,2,3,4,5,3,4,5] s1 = set(l1) #tuple->set t2 = (1,2,3,4,3,2) s2 = set(t2) #set->list s3 = {1,2,3,4} l3 = list(s3) #set->tuple s4 = {2,3,4,5} t4 = tuple(s4)
8.set常用于去重
list去重:list(set(list))
l = [1,5,2,4,3,4,5,6] l = list(set(l)) print(l) -------------------------- out:[1, 2, 3, 4, 5, 6]
相关文章推荐
- python中的集合详解(列表List,元组Tuple,字典,set)
- python 列表list 元组tuple 字典dict 集合set 介绍
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- python入门:基础,列表、元组、字典及集合类型
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- Python中的列表(list),元组(Tuple),字典(Dict)和集合(Set)
- Python之几种重要的基本类型:元组,列表,字典,字符串,集合
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合
- python组合数据类型--元组,字典
- 【python】特色数据类型——元组(列表、元组、字典、集合)(6)
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
- python序列的三种类型:列表、元组、字典
- Python3组合数据类型(元组、列表、集合、字典)语法
- Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- python 数据类型 -列表-字典-元组-切片-内置方法
- Python数据类型详解(列表,元组,字典,日期)
- python之一五大基本类型(数字、字符串、列表、元组、字典)
- Python 学习 (一) python的基本数据类型 元组 列表 字典
- Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习