1. list
1.1 基本概念
lst = []
lst = list(iterable object)
1.2 列表基本操作
1.2.1 增
append() 在列表末尾增加一个元素,无返回值
lst = ['x', 'i', 'love','ff']
lst.append('mm')
print(lst)
print(lst.append('mm'))
print(lst)
lst.insert(2,"yy")
print(lst)
lst.extend('gfd')
print(lst)
1.2.2 引用传递和copy的区别
list4 = list5 = ['f', 'g']
list4.append('G')
print(list4)
print(list5)
print(id(list4),id(list5))
list6 = list5.copy()
print(id(list5))
print(id(list6))
list6.append('uu')
print(list6)
print(list5)
lst3 = [1, 2, 3]
lst4 = lst3.copy()
print(id(lst4))
lst5 = lst3[::]
print(id(lst5))
print(id(lst3))
1.2.3 删
list1 = ['avb', 'gb', None, True, False, 'abcd']
print(list1.pop())
print(list1.pop(3))
lst3 = [7, 8, 9, 10, 10, 7]
lst3.remove(7)
print(lst3)
list1 = ['a', 'b', 12, 'gf']
del list1[2:3]
print(list1)
list1.clear()
print(list1)
1.2.4 查
lst3 = [8, 9, 10, 10, 7]
lst3[1:2] = 'abc'
print(lst3)
lst3[3:3] = 'ghj'
print(lst3)
1.2.5 成员判断
lst = [1,23,'aa']
print('aa' in lst)
1.2.6 改
lst2 = ['i', 'love', 'work', 'and', 'you', '?']
s1 = slice(0, 3, 1)
print(s1)
print(lst2[s1])
list1 = [1.2, 3, 4, 5, 6]
print(list1[::-1])
print(list1)
print(list1.reverse())
print(list1)
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1 + list2
print('默认排序:', list3)
list3.sort(reverse=True)
print('降序: ', list3)
list3.sort(reverse=False)
print('升序: ', list3)
lst = ['你好','back','hello','世界']
lst.sort(reverse=True)
print(lst)
print(ord("b"))
print(ord('你'))
print(ord('世'))
print(ord('h'))
1.2.7 统计
print("*"*10)
lst = [1,2,3,4,2,4,1,1,1,5,7]
print(len(lst))
print(lst.count(1))
print(lst.index(2))
1.2.8 遍历
lst1 = ['a', 'v', 'f', 'g']
for i, j in enumerate(lst1):
print("{} --> {}".format(i, j))
2. tuple
2.1 list和tuple联系
序列的两个主要特点是索引操作符和切片操作符
list是可变数据类型,tuple是不可变数据类型,不能修改删除元素,嵌套list时,list可以被修改;元组是处理有序项目的数据结构,属于不可变数据类型,可以包含任何类型的对象
2.2 定义
a = ()
print(a)
print(a,type(a))
a = tuple()
print(a,type(a))
a = (1)
print(a,type(a))
a = (1,)
print(a,type(a))
2.3 基本操作
2.3.1 索引
my_tuple = (1,3.14,'cali',False,print,[1,2],(1,2),None)
print(my_tuple[5])
print(my_tuple[-5])
2.3.2 切片
my_tuple = (1,3.14,'cali',False,print,[1,2],(1,2),None)
print(my_tuple[5])
print(my_tuple[-5])
print(my_tuple[:7:2])
print(my_tuple[::])
print(my_tuple[-4:-1])
print(my_tuple[-1:-4])
print(my_tuple[-1:-4:-1])
print(slice(0,3),my_tuple[slice(0,3)])
2.3.3 统计
my_tuple = (1,3.14,'cali',False,print,[1,2],(1,2),None)
print(len(my_tuple))
my_tuple.count(1)
my_tuple.index("orange")
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
2.3.4 遍历
m = (1, 3.14, 'cali', False, print, [1, 2], (1, 2), None)
for i in enumerate(m):
print(i)
3. dictionary
3.1 定义
字典是python中的一个键值映射的数据结构,字典是无序的,可变对象,key必须唯一,天生去重; 字典的key必须是可hash对象(不可变数据类型);
singer_null = {}
print(singer_null,type(singer_null))
singer_null = dict()
print(singer_null,type(singer_null))
singer_song = {1: 12, '张韶涵': True, ['汪峰']: 'roke'}
print(singer_song)
singer_song = {1: 12, '张韶涵': True, ('汪峰',): 'roke'}
print(singer_song)
singer_song = {False: 12, '张韶涵': True, ['汪峰']: 'roke'}
print(singer_song)
singer_song = {1: 12, '张韶涵': True, '汪峰': 'roke','汪峰':'在春天里'}
print(singer_song)
lst = [(1,'a'),(2,'b'),(3,'c')]
print(dict(lst))
3.2 查看
dict[key] ,当key不存在时,返回keyerror
dicts.get(key,default),当key不存在时返回default默认内容
singer_song = {False: 12, '张韶涵': True, ('汪峰',): 'roke'}
print(singer_song[False])
print(singer_song.get(False, "没有找到"))
print(singer_song.get('张韶涵1', "没有找到"))
3.3 新增
singer_song = {False: 12, '张韶涵': True, ('汪峰',): 'roke'}
singer_song['张韶涵1'] = '隐形的翅膀'
print(singer_song)
singer_song['张韶涵'] = '阿刁-new'
print(singer_song)
3.3.1 合并字典
singer_song1 = {False: 12, '张韶涵': True, ('汪峰',): 'roke', 1: 3}
singer_song2 = {False: 14, '张韶涵': True, ('汪峰',): 'roke', 5: 2}
print(singer_song1.update(singer_song2))
print(singer_song1)
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
singer_song2 = {'False': 14, '张韶涵': True, '汪峰': 'roke'}
cc = dict(singer_song1, **singer_song2)
print(cc)
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
singer_song2 = {False: 14, '张韶涵': True, '汪峰': 'roke'}
cc = dict(singer_song1, **singer_song2)
print(cc)
lst = (1,2)
print("num1 is {},num2 is {}".format(*lst))
print("num1 is {},num2 is {}".format(1,2))
d1 = {"a":1,"b":2}
print("a is {a},b is {b}".format(**d1))
print("a is {a},b is {b}".format(a=1,b=2))
dict1 = {'a':1,'b':2,3:'n',True:'false'}
dict2 = {'h':4}
dict(dict1,**dict2)
dict2 = {('a',):4}
dict(dict1,**dict2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: keyword arguments must be strings
3.4 删除
singer_song = {False: 12, '张韶涵': True, ('汪峰',): 'roke'}
print(singer_song.pop(False))
print(singer_song)
print(singer_song.popitem())
print(singer_song)
3.5 遍历
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
for i in singer_song1:
print(i, end=' ')
print('\n')
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
for key in singer_song1.keys():
print(key, end=' ')
print('\n')
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
for value in singer_song1.values():
print(value, end=' ')
print('\n')
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
for item in singer_song1.items():
print(item, end=' ')
3.6 成员关系
singer_song1 = {'False': 12, '张韶涵': True, '汪峰': 'roke', 1: 2}
print("张韶涵1" in singer_song1)
print(2 in singer_song1.values())
4. set
4.1 定义
集合是无序、不重复的只含有key的字典;集合可以去重、求两组数据的交集、并集、差集; 集合元素必须是可hash对象
4.2 创建集合
s1 = set([1,2,3])
s2 = {1,2,3}
4.3 添加
s = {1,2,3}
print(s)
print(s.add(4))
print(s)
print(s.update([5,6,7]))
print(s)
print(s.update('asd'))
print(s)
4.4 移除
s = {1,2,3}
s.remove(2)
print(s)
s = {1,2,3}
s.discard(4)
print(s)
4.5 集合操作
set1 = set([1, 2, 3, 4,'abc'])
set2 = {1, 2, 3, 'cde'}
s1 = set1.union(set2)
print(s1)
print(set1 | set2)
s2 = set1.intersection(set2)
print(s2)
print(set1 & set2)
s3 = set1.difference(set2)
print(s3)
print(set1 - set2)
s4 = set1.symmetric_difference(set2)
print(s4)
print(set1 ^ set2)