侧边栏壁纸
博主头像
秋之牧云博主等级

怀璧慎显,博识谨言。

  • 累计撰写 68 篇文章
  • 累计创建 41 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Python集合

秋之牧云
2024-06-13 / 0 评论 / 0 点赞 / 27 阅读 / 6692 字

list(列表)

创建

s = ['python', 'java', ['asp', 'php'], 'scheme']
print(type(s)) # <class 'list'>
  • list是一种可变的有序的集合,可以随时添加和删除其中的元素,使用[] 创建,

classmates = ['Michael', 'Bob', 'Tracy']

操作

  • 获取list的长度

classmates = ['Michael', 'Bob', 'Tracy']
print(len(classmates))  # 3
  • 使用索引访问list元素

classmates = ['Michael', 'Bob', 'Tracy']
print(len(classmates))  # 3
print(classmates[0])
print(classmates[1])
print(classmates[2])
print(classmates[3]) # IndexError: list index out of range
  • 倒序索引,最后一个元素索引是-1

classmates = ['Michael', 'Bob', 'Tracy']
print(len(classmates))  # 3
print(classmates[-1]) # Tracy
print(classmates[-2])
print(classmates[-3])
print(classmates[-4]) # IndexError: list index out of range
  • 追加元素到末尾

classmates = ['Michael', 'Bob', 'Tracy']
classmates.append("Lisi")
  • 在指定位置插入元素

classmates.insert(1, "zhangsan")
  • 删除元素

classmates.pop()	# 删除最后一个
classmates.pop(1)	# 删除指定索引位置
  • 替换指定索引位置的元素

classmates[1] = 'Sarah'
  • list里面的元素类型可以不同

 L = ['Apple', 123, True]
  • list中可以是另一个list

s = ['python', 'java', ['asp', 'php'], 'scheme']
print(s[2][1]) # php

tuple(元组)

创建

  • 元组是不可变的有序列表,使用() 创建

classmates = ('Michael', 'Bob', 'Tracy')
  • 创建一个空的元组

t = ()
  • 创建只包含一个元组的元组比较特殊,需要带一个, 区分,避免歧义

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

所以说,逗号才是定义元组必须要有的,而括号则是可选的

t4 = 1,2,3
print(type(t4)) # <class 'tuple'>
print(t4) # (1, 2, 3)

操作

  • 元组一旦创建就不能改变,但可以使用索引获取元组中的元素

classmates = ('Michael', 'Bob', 'Tracy')

print(classmates[0])
print(classmates[1])

dict(字典)

创建

  • 字典无序的键值对集合,使用{} 加键值对的形式创建,dict的key必须是不可变对象。

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d) # {'Michael': 95, 'Bob': 75, 'Tracy': 85}

操作

  • 通过key获取value,如果key不存在则报错

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael']) # 95

print(d['Hello']) # 不能存在则报错
Traceback (most recent call last):
  File "D:\code\learn-python\demo.py", line 136, in <module>
    print(d['Hello'])
          ~^^^^^^^^^
KeyError: 'Hello'
  • 添加键值对,多次对同一个key放值,后添加的会覆盖先添加的

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Bob'] = 100
print(d) # {'Michael': 95, 'Bob': 100, 'Tracy': 85}
d['Bob'] = 10
print(d) # {'Michael': 95, 'Bob': 10, 'Tracy': 85}
  • 判断key是否存在

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print('hello' in d) # False
  • 通过dict提供的get()方法取值,如果key不存在,可以返回None,或者自己指定的value

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d.get('hello')) # None
print(d.get('hello', -1)) # -1
  • 删除键值对

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d.pop('Bob')
print(d) # {'Michael': 95, 'Tracy': 85}

set(集合)

创建

  • set就是不存储value的dict,同样使用{} 创建,set中的元素无序不重复

s = {1, 2, 3, 3} 
print(s) # {1, 2, 3}
  • 存入可变对象会报错

s3 = {1, 2, [2, 3]}

Traceback (most recent call last):
  File "D:\code\learn-python\demo.py", line 163, in <module>
    s3 = {1, 2, [2, 3]}
         ^^^^^^^^^^^^^^
TypeError: unhashable type: 'list'

操作

  • 添加元素

s = {1, 2, 3, 3}
s.add(4)
print(s) # {1, 2, 3, 4}
  • 删除元素

s = {1, 2, 3, 3}
s.remove(3)
print(s) # {1, 2}
  • 交集、并集、差集、对称差

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2) # 交集 {2, 3}
print(s1 | s2) # 并集 {1, 2, 3, 4}
print(s1 - s2) # 差集 {1}
print(s2 - s1) # 差集 {4}

# 属于s1或s2但不同时属于两者的所有元素
print(s1 ^ s2) # 对称差 {1, 4}

0

评论区