python入门使用(三):数据结构

数据结构

python里有4个内建的数据结构——list(列表),tuple(元组),dictionary(字典),set(集合) ,他们可以统称为“容器”

这四个“容器”里面的“东西”可以是数字、字符、列表或者他们之间的组合,什么都行,而且元素类型不要求相同

1、列表/元组

列表和元组都是序列结构

外形:
列表:[]
元组:()

c = [1,'abc',[1,2]] #c是一个列表,列表的第一个元素是整数1,第二个是字符串'abc',第三个是列表[1,2]
c

在这里插入图片描述
功能区别:
列表可以被修改,而元组不可以。

a = [1,2,3]
print(a)
a[0] = 0
print(a)

在这里插入图片描述

b = (1,2,3)
print(b)
b[0] = 0 #修改报错
print(b)

在这里插入图片描述
如果已经有了一个列表a,想要复制a,并命名为b,那么b=a是无效的,这时候b仅仅是a的一个别名(或者叫引用),修改b也会修改a;
如果想要复制a,就使用b = a[:]

a = [1,2,3]
print("原来的a:",a)
b = a
print("原来的b:",b)
b[0] = 0
print("现在的a:",a)
print("现在的b:",b)

在这里插入图片描述

a = [1,2,3]
print("原来的a:",a)
b = a[:]
print("原来的b:",b)
b[0] = 0
print("现在的a:",a)
print("现在的b:",b)

在这里插入图片描述
函数:
将某个对象转换为列表/元组
列表:list()
元组:tuple()

list('ab')

在这里插入图片描述

tuple([1,2])

在这里插入图片描述

与列表/元组有关的函数:

在这里插入图片描述
作为对象来说,列表本身自带了很多实用的方法,元组不允许修改,因此方法很少

列表本身自带的方法:
在这里插入图片描述

#使用append函数对列表元素进行操作
a = [1,2,3]
b = []
for i in a:
    b.append(i+2)
print(a)
print(b)

在这里插入图片描述

#使用列表解析进行简化
a = [1,2,3]
b = [i+2 for i in a]
print(a)
print(b)

在这里插入图片描述

2、字典

“字典”与列表和元组不同,它的下标不是从0开始,而是自己定义的,且键在整个字典中必须是唯一

#创建一个字典
d = {
    
    'today':13,'tomorrow':14} #这里的today,Tomarrow就是字典的键,它在整个字典中必须是唯一的;13,14是“键”对应的值
d

在这里插入图片描述

#访问字典中的元素
print(d['today'])
print(d['tomorrow'])

在这里插入图片描述

#通过dict()或者dict.fromkeys创建字典
dict([['today',13],['tomorrow',14]]) #相当于{'today':13,'tomorrow':14}

在这里插入图片描述

dict.fromkeys(['today','tomorrow'],15) #相当于{'today':15,'tomorrow':15}

在这里插入图片描述
很多字典相关的函数和方法与列表相同:
在这里插入图片描述

3、集合

与列表的区别:①它的元素不能重复,而且是无序的;②它不支持索引
通过**{}或者set()**函数来创建一个集合

s = {
    
    1,2,2,3} #注意2会自动去重,得到{1,2,3}
print(s)
t = [1,2,2,3] #将列表转换为集合,也会的到去重后的{1,2,3}
s = set(t)
print(s)

在这里插入图片描述
由于集合具有的特殊性,因此集合有一些特别的运算:

t = {
    
    1,2,3}
s = {
    
    1,4,5}
a = t|s #t和s的并集
b = t&s #t和s的交集
c = t-s #t和s的差集
d = t^s #t和s的对称差集(项在t或s中,但不会同时出现在二者之中)
print(a)
print(b)
print(c)
print(d)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45154565/article/details/109262353