python序列的三种类型:列表、元组、字典
2017-06-04 14:23
826 查看
转载自红防联盟www.rednat.com
python的数据结构主要就是序列,而列表、元组和字典三种类型比较容易混淆,特地做了个笔记记录了一下,供大家学习:原文地址:http://www.rednat.com/archives/python-sequence-of-three-types-lists-tuples-dictionaries.html
元组:有序不可变序列
字典:无序可变序列
字符串–元组–列表–字典 的类型相互转换
问题1:为什么会有元组的概念存在,而不能使用列表完全取代元组?
答案:
不可改变类型(元组、字符、数字、frozenset)的优点:
1、可哈希–能够用于字典的key或设置元素
2、在多线程情况下,比可变对象更安全
举例说明:
问题2:怎么判断元组和列表都是有序序列,而字典是无序序列?
答案:
有序序列都有一个index()方法,并且可以用sorted对其元素值进行排序。二字典只能对其key进行排序,value没有默认方法进行排序
例如:
python的数据结构主要就是序列,而列表、元组和字典三种类型比较容易混淆,特地做了个笔记记录了一下,供大家学习:原文地址:http://www.rednat.com/archives/python-sequence-of-three-types-lists-tuples-dictionaries.html
列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加:userlist.append(777) 删除:userlist.remove(4) 或者 del(userlist[3]) pop方法:移除一个元素,默认为最后一个。 userlist.pop(3)移除第三个元素,并且返回该值。 插入:userlist.insert(3,555) 排序:userlist.sort() 默认为升序 userlist.sort(reverse=True)使用降序 。或者使用sorted(userlist)进行排序 反转:userlist.reverse() 查找:userlist.index(3) 或者使用 in 保留字进行查找 取元素:userlist[2] 取坐标:userlist. ecc3 index(999) 列表的连接: extend()方法。 或者使用 + 连接两个列表。 两者不同。 |
创建:tuple1=(1,2,3,4,5,6) 修改:值不能修改 添加:没有append函数,只能通过赋值方式添加: tuple2=(tuple1,7,8,9) 删除:(不可变序列无该属性) 插入:(不可变序列无该属性) 排序:只能使用sorted(userlist)进行排序 反转:(不可变序列无该属性) 查找:userlist.index(3) 或者使用 in 保留字进行查找 取元素:tuple1[4] 取坐标:tuple1.index(3) 去重:set(tuple1) 解包:a,b,c,d,e,f = tuple1 |
创建:dict1={'a':'001','b':'002','c':'003','d':'004'} 或者使用函数创建字典:dict1 = dict([('a','001'),('b','002'),('c','003'),('d','004')]) 修改:值不能修改 添加:直接赋值:dict1['f'] = '006' ; 或者使用setdefault()函数添加字典元素:dict1.setdefault('e','005'),当key已经存在时,则保持原有的k-v不变,当key不存在时,则添加该k-v。 删除:字典无remove()函数,但可以del()函数删除字典的kv:del(dict1['e'])。也可以使用pop()方法删除指定的元素,由于字典是无序的,所以pop()不会默认删除最后一个元素,必须要指定key 插入:字典是无index坐标的,只有添加,没有插入 排序:字典是无index坐标的,所以也是无序的,只能通过key找到value。但可以通过其他方法排序: for k in sorted(dict1): print(k,dict1[k]) 反转:(无序不可反转) 查找:dict1['c'] 或者使用 in 保留字进行查找。 或者使用items()方法将字典的每一对kv转换为元组后进行便利查找 取元素:dict1['c'] 或使用dict1.get('c') 取坐标:key唯一,value不唯一,只能通过循环便利字典来找出 去重:key唯一,无需去重 |
1、元组转换为列表:list() 2、列表转为为元组:tuple() 3、字典转换为列表和元组: dict1.items() 4、列表元祖转为为字典:dict() |
答案:
不可改变类型(元组、字符、数字、frozenset)的优点:
1、可哈希–能够用于字典的key或设置元素
2、在多线程情况下,比可变对象更安全
举例说明:
1 2 3 4 5 6 7 8 9 10 11 12 | tuple1 = (1,2,3) dict1 = {'a':999,tuple1:777,'c':888} print(dict1) 结果为: {'a': 999, 'c': 888, (1, 2, 3): 777} list1 = [1,2,3] dict1 = {'a':999,list1:777,'c':888} print(dict1) 结果报错 |
答案:
有序序列都有一个index()方法,并且可以用sorted对其元素值进行排序。二字典只能对其key进行排序,value没有默认方法进行排序
tuple1.index() list1.index() sorted(tuple1) sorted(list1) |
1 2 3 4 5 6 7 8 9 10 11 1213 | tuple1 = (1,3,2) print(sorted(tuple1)) list1 = [1,2,3] print(sorted(list1)) dict1 = {1:2,3:4} print(sorted(dict1)) 结果为: [1, 2, 3] [1, 2, 3] [1, 3] |
相关文章推荐
- python的列表,元组,字典,序列,字符串的简单解说
- python 序列类型以及list(列表) 和 tuple(元组)详解 以及range的用法
- Python列表,元组,字典,序列,引用
- Python数据类型(元组、列表、字符串、字典)
- Python常用的内置序列结构(列表、元组、字典)学习笔记
- Python数据类型——序列(字符串,列表,元组)
- A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列
- Python Day2 数据类型: 列表元组和字典
- Python常用的内置序列结构(列表、元组、字典)学习笔记
- Python中数据结构 列表 元组 字典 序列
- python学习(列表、字典、元组、序列)
- Python中数据结构 列表 元组 字典 序列
- Python数据类型——序列(列表、元组、字符串)
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
- Python数据类型详解(列表,元组,字典,日期)
- python 第十二周 元组、列表、字典、序列
- Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典