字符串、列表、元组、集合、字典综合对比

一.概念
字符串string:一系列字符,使用引号来创建“”
列表list:一系列按特定顺序排列的元素组成,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可[]
元组tuple:与列表类似,在括号中添加元素,并使用逗号隔开即可,关键在于逗号,单元素后需加逗号 ()
集合set:一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合
字典dictionary:字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。
二.综合对比
1.创建

>>> c=''
>>> len(c)
0#允许空字符串的存在,不包含任何字符且长度为0 ,len()用于计算字符串含有多少字符
>>> not ''
True#空字符串为假
>>> str([1,2,3])	
'[1, 2, 3]'
>>> str(True)	
'True'
>>> 
>>> resum ='''name = "wuhzigao" company = "hbsf"'''
>>> resum
'name = "wuhzigao" company = "hbsf"'#连续三个单引号或者双引号,可以帮助我们创建多行字符串
----------------------------------------------------------------
>>> b=[]
>>> type(b)
<class 'list'>
print(list())
>>> []#创建空列表
>>> a=[1,'asd',[1,2,3],(1,2,3),{2,3,4,5},{1:2,3:4},True]
>>> type(a)
<class 'list'>#列表中可以是任意数据类型
----------------------------------------------------------------------
>>> a=()
>>> type(a)
<class 'tuple'>
print(tuple())
>>>()#创建空元组
>>> a=1,'asd',[1,2,3],(1,2,3),{2,3,4,5},{1:2,3:4},True
>>> type(a)
<class 'tuple'>#元组中可以是任意数据类型,且可不带括号
>>> a=('asghh',)
>>> type(a)#单元素需要带逗号
------------------------------------------------------------------------
print(set())
>>>set()#创建空集合只能用这种方法,因为{}为字典
>>> a={1,'asd',(2,2,3),True}
>>> type(a)
<class 'set'>#集合中数据类型只能是不可变的数字、元组、字符串,不能是可变的列表、字典、集合
>>> a=set(range(10))
>>> print(a)#使用range创建集合
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
-------------------------------------------------------------------------
>>> a={}
>>> type(a)
<class 'dict'>
print(dict())
>>>{}#创建空字典
>>> a={'gdh':1,False:'asd',3:[1,2,3],(23,'qwer'):(1,2,3),2:{2,3,4,5},3:{1:2,3:4},4:True}
>>> type(a)
<class 'dict'>#值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
>>> a=dict(spam=1,egg=2,bar=3)#括号中参数需为可迭代对象
>>> print(a)
{'spam': 1, 'egg': 2, 'bar': 3}#通过关键字dict和关键字参数创建
>>> print(dict([('spam',1),('egg',2),('bar',3)]))
{'spam': 1, 'egg': 2, 'bar': 3}#通过二元组列表创建
>>> dic = dict(zip('abc', [1, 2, 3]))
>>> dic
{'a': 1, 'c': 3, 'b': 2}#dict和zip结合创建
>>> dic = {i:2*i for i in range(3)}
>>> dic
{0: 0, 1: 2, 2: 4}#通过字典推导式创建
>>> dic = dict.fromkeys(range(3), 'x')
>>> dic
{0: 'x', 1: 'x', 2: 'x'}#通过dict.fromkeys()创建,通常用来初始化字典, 设置value的默认值

2.索引(访问)

>>> suoyin='cdgshjadjkhsd1223'
>>> suoyin[4]
'h'
>>> type(suoyin[4])
<class 'str'>
>>> suoyin[-1]
'3'                                                      字符串
--------------------------------------------------------------------------
 >>> a=[1,'asd',[1,2,3],(1,2,3),{2,3,4,5},{1:2,3:4},True]
>>> a[5]
{1: 2, 3: 4}
>>> a[-3]
{2, 3, 4, 5}                                             列表
---------------------------------------------------------------------------
>>> a=(1,'asd',[1,2,3],(1,2,3),{2,3,4,5},{1:2,3:4},True)
>>> a[3]
(1, 2, 3)
>>> a[-7]
1                                                        元组
-----------------------------------------------------------------------------
>>> a={1,2,2,3,4,5,6,7,4}
>>> print(a)
{1, 2, 3, 4, 5, 6, 7}
>>> a[1]
Traceback (most recent call last):
  File "<pyshell#65>", line 1, in <module>
    a[1]
TypeError: 'set' object does not support indexing
#集合无序且不重复,不支持索引                                集合
-------------------------------------------------------------------------------------------------
>>> a={'gdh':1,False:'asd',3:[1,2,3],(23,'qwer'):(1,2,3),2:{2,3,4,5},3:{1:2,3:4},4:True}
>>> a[0]#访问键False
'asd'
>>> a[3]#在字典中,有至少两个成员的键相同,但是键对应的值是不同的,在这种形式形式中在后来赋给键的值将成为键的真实值
{1: 2, 3: 4}
>>> a[8]
Traceback (most recent call last):
  File "<pyshell#69>", line 1, in <module>
    a[8]
KeyError: 8
>>> a[3][1]
2#访问a[3]值为{1: 2, 3: 4},再访问键[1]即为2                字典

2.更新(增删查改)、长度

>>> a='adhjkliu'
>>> len(a)	
8	
>>> a[3]='l'	
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>#不支持字符串内元素修改
    a[3]='l'
TypeError: 'str' object does not support item assignment
>>> b=a[3]+'ong'	
>>> print(b)	
jong#只能这样以字符串拼接方式更改
>>> a='abc'	
>>> 'a' in a	#检查成员
True
>>> 'ab' in a	
True
>>> 'ac' in a	
False
>>> 'a b' in a	
False
---------------------------------------------------------------------------------
>>> a=[1,2,3]
>>>len(a)
3	
>>> a[2]=4	
>>> print(a)	
[1, 2, 4]#更新元素/修改
>>> a.append('4')	
>>> print(a)	#在列表末尾添加元素
[1, 2, 3, '4']
b=[1,2,3,4,5]
>>> b.extend([3,4,5,6])#在列表末尾添加几个元素	
>>> print(b)	
[1, 2, 3, 4, 5, 3, 4, 5, 6]
>>> a.insert(2,'jjs')	
>>> print(a)	#在列表任意位置添加元素
[1, 2, 'jjs', 3, '4']
>>> a.remove('4')#根据值来删除元素	
>>> print(a)	
[1, 2, 'jjs', 3]
>>> a.pop()	#删除末尾的元素并返回末尾的元素
3
>>> print(a)	
[1, 2, 'jjs']
>>> a.pop(1)#加参数表示删除某个特定元素并返回它的值	
2
>>> print(a)	
[1, 'jjs']
>>> del a[0]	#删除任意位置的元素
>>> print(a)	
['jjs']
>>> a=[1,2,3,4,5]	
>>> 1 in a#用关键字in检查元素	
True
--------------------------------------------------------------------------------
元组中的元素值不允许被修改,没有增、改的操作
>>> a=(1,2,3,4)
>>> len(a)	
4	
>>> 1 in a#检查	
True
>>>
>>> a=(1,2,3,4)
>>>> del a#元素值不能被删除,但可以删除整个元组,删除后变量异常	
>>> print(a)	
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined
-----------------------------------------------------------------------------
>>> a={1,1,2,3,23,4,5}
>>> len(a)	
6	
>>> a.add(1)#添加已有元素无任何操作,只能是数字、字符串、元组不可变类型	
>>> print(a)	
{1, 2, 3, 4, 5, 23}
>>> a.add(123345)#添加元素随机位置,因为集合本身无序	
>>> print(a)	
{1, 2, 3, 4, 5, 123345, 23}
>>> a={1,2,3,4,5}
>>> a.update('7',(8,9),[10,11],{12:13,14:15},{16,17})	#参数为可迭代对象,可为字符串,元组,列表,集合,字典,字典取键元素
>>> print(a)	
{1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 14, '7', 16, 17}#添加
{1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 14, '7', 16, 17}
>>> a.remove(1)	#删除元素,元素不存在就会报错
>>> print(a)	
{2, 3, 4, 5, 8, 9, 10, 11, 12, 14, '7', 16, 17}
>>> a.discard('7')	#删除元素,元素即使不存在也不会报错
>>> print(a)
{2, 3, 4, 5, 8, 9, 10, 11, 12, 14, 16, 17}
>>> a.pop()#随即删除某个值并返回	
2	
>>> 2 not in a	
True#检查成员
-----------------------------------------------------------------------------------
>>> a={'wade':3,'bosh':1,'lebron':6}
>>> len(a)	
3
>>> a['paul']=3	#向字典中添加键-对
>>> print(a)	
{'wade': 3, 'bosh': 1, 'lebron': 6, 'paul': 3}
>>> a['leborn']=23#修改字典中某个键的值	
>>> print(a)	
{'wade': 3, 'bosh': 1, 'lebron': 6, 'paul': 3, 'leborn': 23}#字典中同样的键在语法上不出错,但是在一个字典中同样的键对应的值为后面修改的
>>> print(a['leborn'])	
23
>>> del a['paul']#删除某个键	
>>> print(a)	
{'wade': 3, 'bosh': 1, 'lebron': 6, 'leborn': 23}
>>> a.clear()#清空字典得到个空列表	
>>> print(a)
{}
>>> del a#删除整个字典	
>>> print(a)	
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined
>>> a={'wade': 3, 'bosh': 1, 'lebron': 6, 'paul': 3}	
>>> 'wade' in a#检查键成员	
True

3.拼接、重复、复制、最小值最大值

拼接

>>> a={1,2,3}	
>>> b={2,3,4}	
>>> print(a+b)	
Traceback (most recent call last):
  File "<pyshell#104>", line 1, in <module>
    print(a+b)
TypeError: unsupported operand type(s) for +: 'set' and 'set'
>>> a={1:2}	
>>> b={2:3}	
>>> print(a+b)	
Traceback (most recent call last):
  File "<pyshell#107>", line 1, in <module>
    print(a+b)
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
#字符串、列表、元组支持拼接、重复*,集合,字典不支持拼接,重复*
#*重复出来的各对象具有同一个id,也就是指向在内存中同一块地址,在对各个对象进行操作是一定要注意

4.遍历、切片、复制(暂不讲)、嵌套

a={1,1,2,3,4,5}
for i in a:
    print(i)#遍历方法相同:字符串、列表、元组、集合
1
2
3
4
5
players={'wade':3,'bosh':1,'leborn':6}
for player in players:#用for时可用单复数使遍历更加方便
    print("key:",player)#遍历键
key: wade
key: bosh
key: leborn   #字典更多遍历方法见其内置函数方法
a=(1,2,3,4)
print(a[0:2])#字符串、列表、元组均可以切片,集合,字典不可以
print(a[:])#切整个

将一系列字典存储在列表中,或列表存储在字典以及自身互相存储,即为嵌套
5.内置函数、方法及个性特征
见下个bolg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值