当前位置:   article > 正文

Python中的列表,元组,字典以及集合的概念_列表元组集合字典在python中的意义

列表元组集合字典在python中的意义

一、列表,元组,字典以及集合的对比图表

列表,元组,字典以及集合的对比图表
 列表 list元组 tuple字典 dict集合 set
可否修改可变不可变可变可变
可否重复可以可以可以不可以
是否有序有序有序无序无序
存储方式元素值元素值键值对键值对

python内建函数:

  • len函数:返回序列中所包含元素的数量。
  • max函数:返回序列中最大的元素。
  • min函数:返回序列中最小的元素。

python中列表和元组两种数据结构属于有序(这里有序并不是指按照一定逻辑排序,而是指存储按照下标索引可以找到)的序列,而其中元组是不可修改的,下面分别介绍四种数据结构的概念和它们之间的相互转换

二、列表 list  '[]'

初始化:a = [1,2,'str'] 

除了可以通过索引直接访问元素,在python中可以使用分片(前包后不包)操作来访问一定范围内的元素

  1. #coding:utf-8
  2. a = [0,1,2,3,4,5,6,7,8,9]
  3. print a[3:6] #按索引分片
  4. print a[-3:-1]#从后面数,从-1开始
  5. print a[-3]
  6. print a[-3:0]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空
  7. print a[-3:]
  8. print a[:3]
  9. print a[:]#相当于复制原序列
  10. print a[1:8:2]#第三位索引为步长
  11. print a[8:1:2]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空
  12. print a[1:8:-2]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空—这里由于步长为负,是从后往前索引,1比8出现晚
  13. print a[8:1:-2]
  1. [3, 4, 5]
  2. [7, 8]
  3. 7
  4. []
  5. [7, 8, 9]
  6. [0, 1, 2]
  7. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  8. [1, 3, 5, 7]
  9. []
  10. []
  11. [8, 6, 4, 2]

除了可以通过索引下标和分片两种方式直接对列表元素操作之外,列表常用函数如下:

  • list() 函数:把元组,字符串等转换为列
    由于字符串和元组等不可修改,有时候这函数很有用;eg:list('hello')   输出: ['h','e','l','l','o']。
    如果要把列表转换为字符串,常用join函数。' '.join(somelist) 以空格连接列表元素
  • append() 函数:在列表末尾追加新对象,eg:list.append(x),没有返回值 print list
  • count() 函数:统计某个元素在列表中出现的次数,eg:list.count(x) ,返回出现次数 print list.count(x)
  • extend() 函数:可以用写列表扩展原来的列表,eg:a.extend(b),没有返回值 print a
  • index() 函数:找到元素下标,eg:list.index(x),返回下标 print list.index(x) ,如果没找到,会返回异常
  • insert() 函数:将对象插入到列表,eg:list.insert(3,'four') 没有返回值,print list
  • pop() 函数:移除列表元素,默认最后一个,pop(i)移除列表下标为i的列表值,list.pop() 返回被移除的值 print list.pop()
  • remove() 函数:移除列表中第一个匹配项,list.remove('be'),没有返回值,print list
  • reverse() 函数:将列表中元素反响存放,list.reverse() ,没有返回值,print list

三、元组 tuple '()'

初始化 a = (1,2,'str')

元组的意义

既然有了列表,元组又不可变,那么元组存在的意义是什么?

  • 元组可以在映射(和集合的成员)中当做键值对使用——而列表则不行
  • 元组作为很多内建函数和方法的返回值存在,也就是说必须对元组进行处理

元组定义的tips

  • 定义tuple时,必须确定元素值不可更改
  • 如果tuple只有一个元素,需要加逗号 a = (1,),如果定义为b = (1) 就会产生歧义

四、字典 dict '{}'

字典是一种通过名字来引用值的数据结构—映射(mapping)。

字典是无序的,通过键值对存储元素,通过键来访问成员,成员可以重复

字典常用函数如下:

  • len()函数:返回字典x中键值对的数量,len(x)
  • clear()函数:清除字典中所有的项,类似于list.sort(),没有返回值
  • copy()函数:这里是指浅复制,返回具有相同键值对的新字典 eg:y = x.copy()
  • fromkeys()函数:使用给定的键,建立新的字典,值为None,返回新的字典。eg:{}.fromkeys(['name','age'])
  • get()函数:访问字典,一般用d[]访问,如果字典不存在,会报错,用d.get('name'),会返回None
  • keys()函数:获得键的列表,d.keys(),将键以列表形式返回
  • values()函数:获得值的列表,同上
  • pop()函数:删除键值对,d.pop(k),没有返回值
  • update()函数:更新成员,若成员不存在,相当于加入,没有返回值
  • items()函数:获得由键值对组成的列表,返回列表,d.items()
  1. #coding:utf-8
  2. d = {1:'a',2:'b',3:'c',4:'d'}
  3. print len(d)
  4. c = d.copy()
  5. print c
  6. print {}.fromkeys(['str'])
  7. print d.get(1)
  8. print d.get(888)
  9. print d.keys()
  10. print d.values()
  11. d.pop(1)
  12. print d
  13. print d.items()
  1. 4
  2. {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
  3. {'str': None}
  4. a
  5. None
  6. [1, 2, 3, 4]
  7. ['a', 'b', 'c', 'd']
  8. {2: 'b', 3: 'c', 4: 'd'}
  9. [(2, 'b'), (3, 'c'), (4, 'd')]

五、集合 set '{}'

集合是一个无序不重复元素集,python中的集合与其它

定义集合:set0 = {1,2,3,4}

集合常用函数如下:

  • add()函数:添加新元素,没有返回值,如果添加重复元素,不会报错,不添加而已
  • pop()函数:set集合无序,这里会随机删除一个元素,返回值为删除的元素

六、四种数据结构相互转换

  1. #coding:utf-8
  2. list1 = [1,2,2,3,4]
  3. list2 = ['c1','c2','c3','c4','s','c']
  4. list3 = [[1,'a'],[2,'b']]
  5. set0 = set(list1)
  6. d0 = dict(zip(list1,list2))
  7. d1 = dict(list3)
  8. str = ' '.join(list2).strip() #strip函数是去除首尾的空格
  9. print set0 #转换为集合
  10. print d0 #转换为字典,list1有重复元素,形成字典看结果
  11. print d1 #转换为字典
  12. print str #转换为字符串
  13. print list(d0) #字典转换为列表,这里转换的值为键元素
  14. print tuple(d0) #字典转换为元组,这里转换的值为键元素
  15. print list(set0)#相当于list=list(set(list1)),把list1做了去重的处理
  1. set([1, 2, 3, 4])
  2. {1: 'c1', 2: 'c3', 3: 'c4', 4: 's'}
  3. {1: 'a', 2: 'b'}
  4. c1 c2 c3 c4 s c
  5. [1, 2, 3, 4]
  6. (1, 2, 3, 4)
  7. [1, 2, 3, 4]

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/208007
推荐阅读
相关标签
  

闽ICP备14008679号