列表list
通过方括号括起来的数据序列,可以进行重复数据的存放
创建列表:
1.创建空列表
a = []
a = list()
2.创建有初始值的列表
a = [1, 'hello', 2.3]
a = list([1, 'hello', 2.3])
获取元素
1.获取单个元素 a[index]
a = ['hello', 'python', 426]
#a[0] = a[-3] = 'hello'
#a[1] = a[-2] = 'python'
#a[2] = a[-1] = 426
注:index的范围为[-n, n-1], n为列表的大小
2.获取多个元素(切片)
list[begin : end : step]
a = [0, 1, 2, 3, 4, 5]
a[1 : 4 : 2] = [1, 3]
a[4 : 1 : -1] = [3, 2 , 1]
#特殊的:
#begin 默认为 0, end 默认为 n, step 默认为 1
#a[ : ] 取出所以元素
#a[begin : ] 取出[begin, n)元素
#a[ : end] 取出[0, end)元素
添加元素
1.appnd(value) 在列表末尾添加一个元素
a = [0, 1]
a.append(2)
#a = [0, 1, 2]
2.extend(iterable) 在列表末尾添加至少一个元素(本质为合并列表)
a = [0,1]
b = [0, 1]
c = [2, 3]
a.extend(c)
#a = [0, 1, 2, 3]
b.append(c)
#b = [0, 1, [2, 3]]
3.insert(index,value) 在指定位置(index)添加一个元素
a = [1, 2]
a.insert(0, 0)
#a = [0, 1, 2]
删除元素
1.pop(index) 删除指定位置(index)元素;若不指定index,则删除最后一个元素
a = [0, 1, 2]
a.pop()
#a = [0, 1]
b = [0, 1, 2]
b.pop(1)
#b = [0, 1]
2.remove(value) 删除value,若有多个value,只删除第一个
a = [0, 1, 2]
a.remove(1)
#a = [0, 2]
b = [0, 1, 2, 1]
b.remove(1)
#b = [0, 2, 1]
3.通过切片删除任意个元素(本质:修改片段为NULL)
a = [0, 1, 2]
a[1 : 1] =[]
a = [0, 1, 2]
b = [0, 1, 2]
b[1 : 3] =[]
b = [0]
获取指定元素的索引
1.index(value) 返回列表中第一个value的索引
a = ['hello', 'python', 'hello']
#a.index('hello') = 0
2.index(begin, end, value) 在指定范围[begin, end)中查找
a = ['hello', 'python', 'hello']
#a.index(1, 3, 'hello') = 2
修改列表
1.修改单个元素
a = [0, 1, 2]
a[2] = 3
#a = [0, 1, 3]
2.切片修改任意个元素
a = [0, 1, 2]
a[1 : 2] = [5, 6, 7]
#a = [0, 5, 6, 7, 2]
b = [0, 1, 2 ,3]
b[1 : 3] = [1]
#b = [0, 1, 3]
常用方法函数
1.sort(key, reverse) 和 sorted(iterable, key, reverse) 排序
a = [0, 2, 1, 5, 4, 3]
a.sort();
#a = [0, 1, 2, 3, 4, 5]
a.sort(reverse = True)
#a = [5, 4, 3, 2, 1, 0]
a = ['hello', 'python', 'abcdef']
a.sort()
#a = ['abcdef', 'hello', 'python']
a.sort(key = lambda i:len(i))
#a = ['hello', 'abcdef', 'python']
sorted()返回一个新的对象,其余与sort类似
a = [0, 2, 1, 5, 4, 3]
b = sorted(a)
#b = [0, 1, 2, 3, 4, 5]
2.reverse() 反转
a = ['hello', 'python', 'world']
a.reverse()
#a = ['world', 'python', 'hello']
3.clear() 清空列表
a = ['hello', 1, 'hahaha']
a.clear()
#a = []
4.del() 删除列表
字典dict
python的内置数据结构,可变序列。
使用键值对的方式存储数据,无序序列。
创建字典
1.创建空字典
a = {}
a = dict()
2.创建有初始值的字典
a = {'name':'Choas', 'age':20, 'sex':'female'}
a = dict(name = 'Chaos', age = 20 , sex = 'famale')
获取元素
1.dict[key]
print(a['name'])
#Choas
2.get(key)
print(a.get('name'))
#Choas
区别:如果key不存在,第一种方法会报错,第二种方法返回None。
dict.get(key,value)如果键不存在,返回value,默认为None。
修改元素
1.dic[key] = value
a = {'1':1}
a['1'] = 2
#a = {'1':2}
2.updata(dic)通过另一个字典更新字典
#有则更新,无则添加
a = {'name':'Choas', 'age':20}
b = {'age':22, 'sex':'famale'}
a.update(b)
#a = {'name':'Choas', 'age':22, 'sex':'famale'}
获取字典视图
a = {'name':'Choas', 'age':20, 'sex':'female'}
1.keys() 获得所有key
a.keys()
#['name', 'age', 'sex']
#返回类型不是列表,是dict_keys
2.values() 获得所有value
a.values()
#['Choas', 20, 'famale']
#返回类型不是列表,是dict_values
3.items() 获得所有键值对(元组形式)
a.items()
#[('name','Choas'), ('age', 20), ('sex','famale')]
key的判断
a = {'name':'Choas', 'age':20, 'sex':'female'}
'name' in a
#True
'age' not in a
#False
删除元素
a = {'name':'Choas', 'age':20, 'sex':'female'}
1.pop(key)
a.pop('name')
#a = {'age':20, 'sex':'female'}
#有name直接删除--有返回值,按键删除
a.pop('python','not find')
#没有python--可设置返回值:not find(默认None)
2.del(key)
有则删除,没有则报错
del a['name']
#a = {'age':20, 'sex':'female'}
3.popitem() 随机删除
随机删除:有返回值--返回元祖:删除的键值
a.popitem()
#('age':20)
4.clear() 清空列表
元组tuple
不可变序列
创建元组:
1.创建空元组
a = ()
a = tuple()
2.创建有初始值的元组
a = ('ptrhon', 2, 'hello')
a = tuple(('ptrhon', 2, 'hello'))
a = 'ptrhon', 2, 'hello'
#特别的,只有一个元素是必须加小括号和逗号
b = ('must',)
获取元素
a = (100, ['a',10], 'hello')
#a[1] = a['a',10]
特别的,元组不能变,但元组的元素可以是可变对象
a = (100, ['a',10], 'hello')
a[1] = 200
#报错,不可行
a[1].append(20)
#a = (100, ['a', 10, 20], 'hello')
集合set
使用大括号包含起来的一组数据,set中存放的数据是不能重复的,并且是没有存放顺序的,也就是没有下标的。
集合的元素只能是不可变对象。
创建集合:
1.创建空集合
a = set()
2.创建有初始值的列表
a = {1, 'hello', 2, 1, 'hello'}
#a = {1, 'hello', 2}
a = set([1, 'hello', 2, 1, 'hello'])
#a = {1, 'hello', 2}
添加元素
1.add()
a = {1, 'hello', 2}
a.add(3)
#a = {1, 'hello', 2, 3}
删除元素
1.remove(value)
只能删除集合中的值,否则报错。
a = {1, 'hello', 2}
a.remoe('hell0')
#a = {1, 2}
2.discard(value)
与remove相同,但删除不存在的值不会报错。
3.pop()
随机删除一个元素并返回
a = {1, 'hello', 2}
b = a.pop()
#a = {1, 2}
#b = 'hello'
集合运算
1.并集union() 或 |
a = {1, 2}
b = {2, 3}
c = a.union(b)
#等价于 c = a | b
#c = {1, 2, 3}
2.交集intersection() 或 &
a = {1, 2}
b = {2, 3}
c = a.intersection(b)
#等价于 c = a & b
#c = {2}
3.差集difference() 或 -
a = {1, 2}
b = {2, 3}
c = a.difference(b)
#等价于 c = a - b
#c = {1}
4.对称差集symmetric_difference() 或 ^
a = {1, 2}
b = {2, 3}
c = a.symmetric_difference(b)
#等价于 c = a ^ b
#c = {1, 3}
5.逻辑运算
#判断相等
==
#判断不等
!=
#判断子集
a.issubset(b)
a <= b
#判断真子集
<
#判断超集
a.issuperset(b)
a >= b
#判断真超集
>
#isdisjoin() 判断无交集
a = {1, 2}
b = {2, 3}
c = {3, 4}
a.isdisjoin(b) #FAlse
a.isdisjoin(c) #True
Comments | 1 条评论