一、列表(list)
(1)定义
a=[9,3,4,2,6,8] #用中括号去定义、创建
b=[] #定义一个空列表
print(a) #[9,3,4,2,6,8]
print(b) #[]
(2)访问
(2.1)索引访问
正索引从0开始;负索引从-1开始
a=[9,3,4,2,6,8]
print(a[2]) #4 正索引从0开始
print(a[-2]) #6 负索引从-1开始
a[2]=666
print(a) #[9,3,666,2,6,8]
(2.2)切片访问
a [ 开始:结束:步长 ] —— 左闭右开 [ 开始:结束 )
a=[9,3,4,2,6,8,5,0,1]
print(a[2:6:2]) #[4, 6]
print(a[2:6]) #[4, 2, 6, 8]
print(a[6:]) #[5, 0, 1]
print(a[:6]) #[9, 3, 4, 2, 6, 8]
print(a[6:-1]) #[5, 0]
(3)添加
b=[8,3,4]
b.append(666)
print(b) #[8, 3, 4, 666]
(4)删除
b=[8,3,4,1]
del b[2] #delete函数 列表名[索引]
print(b) #[8,3,1]
(5)连接
a=[9,3,4,2,6,8,5,0,1]
b=[213,3425,53,234]
print(a+b) #[9, 3, 4, 2, 6, 8, 5, 0, 1, 213, 3425, 53, 234]
(6)迭代
a=[5,8,7]
b=a*3
print(b) #[5, 8, 7, 5, 8, 7, 5, 8, 7]
二、元组(tuple)
(1)创建
x=(2,3,4,6,8,1,7) #用小括号去创建
print(x) #(2,3,4,6,8,1,7)
print(type(x)) # <class 'tuple'>
y=(5)
z=(5,)
print(y) # 5
print(type(y)) # <class 'int'>
print(z) # (5,)
print(type(z)) # <class 'tuple'>
a=('cdbdjhs',5)
b=("bdcjfhbsd")
print(a,) # ('cdbdjhs', 5)
print(b) # bdcjfhbsd
print(type(a)) # <class 'tuple'>
print(type(b)) # <class 'str'>
(2)访问
a [ 开始:结束:步长 ] —— 左闭右开 [ 开始:结束 )
a=(9,3,4,2,6,8,5,0,1)
print(a[2]) # 4
print(a[-2]) # 0
# a[2] = 666 元组不允许更改值
print(a[2:6:2]) #[4, 6]
print(a[2:6]) #[4, 2, 6, 8]
print(a[6:]) #[5, 0, 1]
print(a[:6]) #[9, 3, 4, 2, 6, 8]
print(a[6:-1]) #[5, 0]
(3)操作
(3.1)删除
a=(5,8,7,3,9,6,1,0,2)
print(a)
del a
print(a) #发生异常: NameError: name 'a' is not defined
(3.2)连接
a=(1,2,3)
b=(4,5,6)
c=a+b
print(c) # (1, 2, 3, 4, 5, 6)
(3.3)计算长度
a=(5,8,7,3,9,6,1,0,2)
print(len(a)) # 9
(3.4)迭代(重复)
a=(5,8,7)
b=a*3
print(b) # (5, 8, 7, 5, 8, 7, 5, 8, 7)
三、字典
(1)定义
用键值对表示key:value
a={
"huawei":"001",
"xiaomi":"002",
"apple":"003",
"haode":666
}
print(a) # {'huawei': '001', 'xiaomi': '002', 'apple': '003', 'haode': 666}
print(type(a)) #<class 'dict'> 字典类型
(2)引用
a={
"huawei":"001",
"xiaomi":"002",
"apple":"003",
"haode":666
}
print(a["huawei"]) # 001
print(a["haode"]) # 666
a["haode"] = 777 # 修改数据
print(a["haode"]) # 777
(3)增加
a={
"huawei":"001",
"xiaomi":"002",
"apple":"003",
"haode":666
}
a["oppo"]="004"
print(a)
# {'huawei': '001', 'xiaomi': '002', 'apple': '003', 'haode': 666, 'oppo': '004'}
(4)删除
字典是无序的,不可根据下标操作
a={
"huawei":"001",
"xiaomi":"002",
"apple":"003",
"haode":666
}
del a["apple"]
print(a) # {'huawei': '001', 'xiaomi': '002', 'haode': 666}
四、集合
(1)定义
集合里面没有重复的值
(1.1)直接使用 { } 创建
1、打印出来后 顺序和定义时不同
2、如有重复项,会自动去重
mySet={"Jeasu","18 years old","a beautiful girl"}
print(mySet) #{'18 years old', 'a beautiful girl', 'Jeasu'}
n={2,4,3,5,9,2,6,6}
print(n) #{2, 3, 4, 5, 6, 9}
n={243,56,73,342,6,6}
print(n) #{243, 6, 342, 56, 73}
(1.2)使用set ( ) 创建
1、将列表、元组等迭代对象转换成集合
2、如有重复项,会自动去重
mySet = set([1,2,3,4])
print(mySet) # {1,2,3,4}
m=[1,1,321,4]
y=set(m)
print(y) #{321, 1, 4}
b=(5,7,4,6)
z=set(b)
print(z) # {4, 5, 6, 7}
(2)添加
向集合里添加元素:集合名.add(元素)
z={4, 5, 6, 7}
z.add(999)
print(z) # {4, 5, 6, 999, 7}
(3)删除
(3.1)删除集合
z={4, 5, 6, 7}
del z
print(z) #发生异常: NameError: name 'z' is not defined
(3.2)删除元素
pop( ) :随机删除一个元素,但经过大量测试:如果是数字,则删除的是最小值;如果是字符串,则可能随机删除
z={4, 5, 6, 7}
z.pop()
print(z) #{5, 6, 7}
mySet={"jeasu","18 years old","a beautiful girl"}
mySet.pop()
print(mySet)
#执行两次pop(),结果分别为
# {'jeasu', '18 years old'},{'18 years old', 'a beautiful girl'}
#可见若是字符串,则是随机删除
remove ( ) :删除指定元素
z={4, 5, 6, 7,999}
z.remove(7)
print(z) # {4, 5, 6, 999}
clear( ) :删除全部元素
z={4, 5, 6, 7,999}
z.clear()
print(z) # set() 集合还在 是个空集合
(4)运算
(4.1)交集:&
a={1,2}
b={3,1,4}
print(a & b) # {1}
(4.2)并集:|
a={1,2}
b={3,1,4}
print(a|b) # {1, 2, 3, 4}
(4.3)差集:—
a-b :将b中元素从a中扣除(有则去除)
a={1,2}
b={3,1,4}
print(a-b) #{2}
五、列表、元组、字典和集合的区别
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
---|---|---|---|---|
列表(list) | 可变 | 可重复 | 有序 | [ ] |
元组(tuple) | 不可变 | 可重复 | 有序 | ( ) |
字典(dictionary) | 可变 | 可重复 | 无序 | { key:value } |
集合(set) | 可变 | 不可重复 | 无序 | { } |