Python列表、元组、集合、字典的区别

**

在Python中,list、tuple、dict、set有什么区别,以

及主要的应用场景。

**

定义:

  • list:链表,有序的项目,通过索引进行查找,使用方括号"[]";
  • tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找,使用 括号"()";
  • dict:字典,字典是一组键(key)和值(value)的组合,通过key进行查找,没有顺序,使用大括号"{}";
  • set:集合,无序,元素只出现一次,自动去重,使用"set([])";

应用场景:

1.list,简单的数据集合,可以使用索引;
2.tuple,把数据当做一个整体使用,不能修改;
3.dict,使用键值对进行关联的数据;
4.set,数据只出现一次,只关心数据是否出现,不关心其位置;

--------------------------------列表 和字典的一点区别--------------------------------------------

列表:随着插入的增加,访问速度变慢;占用内存少;

字典:插入数据增加,访问速度不变;但占用内存多(消耗内存换时间);

列表,字符串,元组:可通过切片访问,因为都有下标;

集合,字典:没有下标,无法通过下标访问;

------------------------标准分类--------------------------------
在这里插入图片描述

扫描二维码关注公众号,回复: 4935776 查看本文章

------------------------元组(tuple)和列表(list)的不同----------------------------------
列表(list)和元组(tuple)的不同

     列表                  元组

元素 方括号 圆括号

可变性 可变 不可变

操作 增删改查 搜索

为什么要有元组:1、安全(数据不可改)2、查找速度快(因为不能修改,所以不必检索)

1、列表可以随意插入删除元素,而元组不能随意插入或删除元素,也不能排序。

2、创建列表用中括号[],元组是用小括号()和逗号,。list1=[1,2] tuple= (2,3)

l=[] ##创建列表只要有中括号就能创建。
t=(1) ##这里t是整型类型
t=(1,) ##逗号和小括号配合,此时t是元组类型
t= 1,3,4,5 ##用逗号隔开,此时t也是元组类型

3*(2) 结果为:6
3*(2,) 结果为:2,2,2
--------------------------------------集合和列表--------------------------------------------
列表可以存储相同的数据,而集合会将相同的数据合并。
例:

>>> num=[1, 2, 3, 3, 5, 6]
>>> type(num)
<class 'list'>
>>> set(num)    ##set排序是无序的。
{1, 2, 3, 5, 6}

-------------------------------下标访问(一些通用操作符)---------------------------------------
能通过下标访问的叫序列类包括:字符串,列表,元组
列表:l=[1,3,4] l[0]为:1
元组:t=(1,2,3) t[0]为:1
字符串:str1=‘sfsfs’ str1[0]为:s

无法通过下标访问的叫映射类:包括字典:
字典:dic={‘a’: 1, ‘b’: 2} dic[‘a’]为 1

对于序列来说,存放的的值可以有重复的,而映射类中无法存放相同的数值。
所以序列类有些操作是映射类没有的。
1、连接操作符:+ 把一个序列和另一个相同的序列做链接

   a='aa'  b='bb'   >>>a+b 得到:aabb

2、重复操作符:* 当序列需要拷贝多份时

 a='a'  >>a*3  >>aaa  拷贝3份

3、切片操作 [] [:] [::]

a='python'  >>>a[0]  得到:p  顺序数下标从0开始
                >>>a[:]  得到所有:python
                >>>a[0:2]得到3个数:pyt
               >>>a[-2] 得到第二个数:o   倒数的话下标从1开始t
              
              >>>a[-4:-2] 得到:th  从-4位到-2位,从右往左数
              >>>a[-2:-4] 得到空,从-2到-4为,不能从左往右数
              >>>a[-2:-4:-1]得到:ho,从-2到-4位,定义了-1可从左往右数
              >>>a[::-1] 得到:nohtyP 逆序
   a ='10001000100010001'
               >>>a[0:17:4] 返回:11111,第0位算在内,开始跨4步。
               >>>a[::4] 返回:1111 头尾不写代表默认最小,最大
               >>>a[::-4]返回:1111 负号反向每隔4位数输出

4、成员操作符:in ,not in

a='python'
          >>>'PP' in a    >>>False
          >>>'p'  in a    >>>True

------------------------------------序列常用的函数--------------------------------
1、len()
2、max() and min() 获取最大和最小值
a=(1,2,3)
>>>max(a) >>3
>>>min(a) >>1
3、str(),repr()
str是将数值转化为字符串;
repr是将对象(包括)转化为字符串,包括:数值,字符串,元组,列表,集合,字典。

字典,集合,列表,元组

1、定义语法:
字典:
dic = {‘a’:1,‘b’:2}
a=dict(one=1,two=2)
b=dict([(‘a’,1),(‘b’,2),(‘c’,3)])
c=dict({‘a’:1,‘b’:2,‘c’:3})

集合:
b=set([(‘a’,1),(‘b’,2),(‘c’,3)])
c=set({‘a’:1,‘b’:2,‘c’:3})
d={1,2.0,3,4}

列表:
list1 = [‘physics’, ‘chemistry’, 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = [“a”, “b”, “c”, “d”];

元组:
t=(1,3)
t=( ‘ac’,‘bd’ )字符定义

2、增删改

              增                删                     改

dict NULL pop update(将2个个字典合并为一个字典,key重复合并values)
clear
popitem

list append pop NULLL
extend clear
insert remove

set add pop update (update用来求2或多个集合的并集)
clear
remove

字典:
1、删除pop(),括号中是要删除的值。
2、删除popitem(),随机删除一个值。
3、clear()清除字典

集合:
1、增加集合add()
2、删除集合remove()

列表:
append函数:给数组尾部追加一个数值
extend函数:给数值尾部追加一个或多个数值,要用中括号(列表)括起来。
insert函数:在数组的某个位置插入一个数值

del 列表名[下标]
列表名.remove(删除的值)
列表明.pop()有参数下标删除删除的值,没参数删除最后一个。

猜你喜欢

转载自blog.csdn.net/qq_33706146/article/details/85604157