Python中的列表,元组,字典以及集合的概念

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

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

python内建函数:

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

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

二、列表 list  '[]'

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

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

#coding:utf-8
a = [0,1,2,3,4,5,6,7,8,9]
print a[3:6] #按索引分片
print a[-3:-1]#从后面数,从-1开始
print a[-3]
print a[-3:0]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空
print a[-3:]
print a[:3]
print a[:]#相当于复制原序列
print a[1:8:2]#第三位索引为步长
print a[8:1:2]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空
print a[1:8:-2]#只要左边索引的元素值比右边索引的元素值出现晚,结果就为空—这里由于步长为负,是从后往前索引,1比8出现晚
print a[8:1:-2]
[3, 4, 5]
[7, 8]
7
[]
[7, 8, 9]
[0, 1, 2]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7]
[]
[]
[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()
#coding:utf-8
d = {1:'a',2:'b',3:'c',4:'d'}
print len(d)
c = d.copy()
print c
print {}.fromkeys(['str'])
print d.get(1)
print d.get(888)
print d.keys()
print d.values()
d.pop(1)
print d
print d.items()
4
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
{'str': None}
a
None
[1, 2, 3, 4]
['a', 'b', 'c', 'd']
{2: 'b', 3: 'c', 4: 'd'}
[(2, 'b'), (3, 'c'), (4, 'd')]

五、集合 set '{}'

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

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

集合常用函数如下:

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

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

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

 

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 列表元组集合字典是四种常用的数据结构,它们各自具有不同的特性和用途: 1. 列表(List):列表是一种有序、可变的数据结构,用于存储多个元素。列表使用方括号 [] 来表示,元素之间用逗号分隔。列表的元素可以是任意类型,并且可以通过索引进行访问、修改和删除。列表还支持切片操作和多种方法(如添加、删除和排序等)。 2. 元组(Tuple):元组是一种有序、不可变的数据结构,用于存储多个元素。元组使用圆括号 () 来表示,元素之间用逗号分隔。与列表不同,元组一旦创建就不能修改,因此具有更高的安全性。元组通常用于存储不可变的数据,如坐标、日期和配置信息等。 3. 集合(Set):集合是一种无序、可变的数据结构,用于存储唯一的元素。集合使用花括号 {} 来表示,元素之间用逗号分隔。集合不允许重复的元素,且没有索引,不支持切片操作。集合支持常见的数学集合操作,如并集、交集、差集等。集合常用于去重操作和判断元素的存在性。 4. 字典(Dictionary):字典是一种无序、可变的键值对数据结构,用于存储多个键值对。字典使用花括号 {} 来表示,每个键值对之间用冒号 : 分隔,键值对之间用逗号分隔。字典的键必须是唯一的,而值可以是任意类型。字典通过键来访问、修改和删除对应的值,具有快速的查找速度。 总结起来,列表适合存储有序、可变的多个元素;元组适合存储有序、不可变的多个元素;集合适合存储无序、唯一的元素;字典适合存储键值对数据。根据具体的需求和数据特性,选择合适的数据结构可以更有效地处理和操作数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值