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}
评论区