计算机二级python_2_python组合数据类型

本文详细介绍了Python中的列表、元组、字典和集合的基本概念、操作方法,包括元素访问、添加和删除、元组的创建和连接、字典的键值对操作以及集合的特性和运算。
摘要由CSDN通过智能技术生成

列表

列表(list)是有序的,列表中的值可以是任何数据类型,列表的元素有索引。

列表对象用方括号包围,逗号分隔

[1,2,'a',4]

访问元素

访问元素,使用索引

lis = [1, 2, 'a']
print(lis[0])    # 1
print(lis[1])    # 2
print(lis[2])    # a

添加元素

append()

lis = [1, 2, 'a']
lis.append(3)
print(lis)        # [1, 2, 'a', 3]

删除元素

remove()

根据元素删除

lis = [1, 2, 'a']
lis.remove('a')
print(lis)    # [1, 2]

pop()

删除列表末尾的元素

lis = [1, 2, 'a']

lis.pop()    # 删除末尾的元素 'a'
print(lis)    # [1, 2]

lis.pop()    # 删除末尾的元素 2
print(lis)    # [1]

del

根据索引删除,或删除整个列表

lis = [1, 2, 'a']

del lis[1]  # 删除索引为1的元素
print(lis)

del lis     # 删除整个列表
print(lis)  # NameError: name 'lis' is not defined

其他列表操作

count()

返回某个元素在列表中出现的次数

lis = [1, 2, 3, 1]
print(lis.count(1))  # 2
print(lis.count(2))  # 1

extend()

向列表末尾追加另一个列表的所有元素

lis1 = [1, 2, 3]
lis2 = [3, 2, 1]

lis1.extend(lis2)

print(lis1) # [1, 2, 3, 3, 2, 1]

index()

返回列表中第一次出现的某个元素的索引

lis = ['a', 'b', 'c', 'a', 'c', 'b']
print(lis.index('a'))   # 0
print(lis.index('b'))   # 1

reverse()

反转列表元素的排列顺序

lis = [1, 2, 3, 'a', 4]

lis.reverse()
print(lis) # [4, 'a', 3, 2, 1]

sort()

永久将列表升序,列表元素需要是数字类型

lis = [3, 2, 1, 4, 2.5]

lis.sort()
print(lis)  # [1, 2, 2.5, 3, 4]

sorted()

临时将列表升序,sorted()不是列表属性

lis = [3, 2, 1, 4, 2.5]

sorted(lis)
print(lis)      # [3, 2, 1, 4, 2.5]

print(sorted(lis))  # [1, 2, 2.5, 3, 4]

列表切片

根据索引切分列表,和字符串切片一样

lis[开始位置: 截止位置: 步长],       

根据索引 左闭右开  [开始索引, 截止索引) ,

步长为正,取到截止索引 -1的位置

步长为负,取到截止索引 +1 的位置

lis = ['a','b','c','d','e','f']

print(lis[0:5]) # ['a', 'b', 'c', 'd', 'e']

print(lis[0:6]) # ['a', 'b', 'c', 'd', 'e', 'f']

print(lis[5:0:-1]) # ['f', 'e', 'd', 'c', 'b']

列表检查

lis = ['a','b','c','d','e','f']

print('a' in lis)   # True
print(1 in lis)     # False

元组

元组(tuple) 用小括号包裹,逗号分隔。

创建元组

用逗号分隔一些数据,就会创建一个元组,创建一个元素的元组,只需要在后面加逗号

k = 'a', 'b'
print(k)   # ('a', 'b')
print(type(k)) # <class 'tuple'>

t = (1,)
print(type(t)) # <class 'tuple'>

s = 'a',
print(type(s)) # <class 'tuple'>

连接、删除元组

元组的元素值不能修改,但是可以对元组进行连接

tup1 = ('a', 'b')
tup2 = ('c', 1)

tup = tup1 + tup2
print(tup) # ('a', 'b', 'c', 1)

元组的元素也不允许删除,只能用del删除整个元组

tup1 = ('a', 'b')
del tup1

内置函数使用

python的一些内置函数,如len()、max()、min()、tuple()等,对元组(tuple)的操作,

tup = (2,4,5,2)
print(len(tup))     # 4
print(max(tup))     # 5
print(min(tup))     # 2

# 将列表转换为元组
lis = ['a', 1, 3]
new = tuple(lis)
print(new)          # ('a', 1, 3)
print(type(new))    #<class 'tuple'>

字典

字典是键值对的无序集合,用花括号{}包裹,冒号分开“键”和“值”,逗号分隔元素

元素获取

字典根据键获取值

dic = {"a":1, 'b':2, 'c':3}
# 获取某个键的值
print(dic['a'])             # 1
print(dic.get('a'))         # 1

# 获取所有键,并存为列表
print(list(dic.keys()))     # ['a', 'b', 'c']

# 获取所有值并存为列表
print(list(dic.values()))   # [1, 2, 3]

# 将字典键值对转为列表
print(list(dic.items()))    # [('a', 1), ('b', 2), ('c', 3)]

更新(修改)字典

dic = {"a": 1, 'b': 2, 'c': 3}

dic['a'] = 11
print(dic)  # {'a': 11, 'b': 2, 'c': 3}

删除键值对

del

dic = {"a": 1, 'b': 2, 'c': 3}

del dic['a']
print(dic)  # {'b': 2, 'c': 3}

遍历字典

遍历 键和值

遍历键

遍历值

其他字典操作

clear()

用于清空字典内容,

copy()

返回一个具有相同键值对的新字典

dic = {"a": 1, 'b': 2, 'c': 3}

dic2 = dic.copy()
print(dic2) # {'a': 1, 'b': 2, 'c': 3}

集合

集合存储的元素无序且不重复。

集合用花括号{}包裹

可以用set()创建,或者直接创建

s1 = {'a', 'b', 'c'}
s2 = set([1,2,'c'])

print(type(s1)) # <class 'set'>
print(type(s2)) # <class 'set'>

访问集合元素使用迭代的方式

s1 = {'a', 'b', 'c'}

for item in s1:
    print(item, end=',')    # a,b,c,

集合运算

集合的运算符描述
A-B返回A捏不属于B的集合 
A&B返回属于A且属于B的集合(A∩B)
A^B返回不是A和B共同元素的集合 (A∪B - A∩B)
A|B返回A和B的所有元素的集合(A∪B)

集合的方法

方法描述
A.issubset(B)A是B的子集,则返回True,否则False
B.issuperset(A)B是A的超集合,返回True。(即A是B的子集)
A.union(B)A∪B
A.intersection(B)A∩B
A.difference(B)A - B,属于A但不属于B的集合
A.symmetric_difference(B)A∪B - A∩B
A.copy()复制集合A,返回新集合
A = {'a', 'b', 'c'}
B = {1, 2, 3, 'a', 'b'}
AC = {'a', 'b'}

# 子集
print(B.issubset(A))  # False
print(AC.issubset(A))  # True

# 父集合
print(A.issuperset(AC))  # True

# 并集
print(A.union(B))  # {1, 2, 3, 'b', 'c', 'a'}

# 交集
print(A.intersection(B))  # {'a', 'b'}

print(A.difference(AC))  #  {'c'}   A-(A∩AC)

print(A.symmetric_difference(B)) # {1, 2, 3, 'c'}   A+B - (A∩B)

N = A.copy()
print(N)    # {'b', 'a', 'c'}

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值