1、列表的基本操作简介
列表的英文名字是list,叫列表和叫list是一个意思,列表用[]表示,如L = [],表示这是一个空列表,里面没有值,列表里面可以存放int、float、str、bool登录数据类型,可以把一个类型的存放在list里,如nums = [6,3,24,67,31,7,10],也可以把所有类型的都放在一个list里,如names = ['parker',123,10.5,True],还有二维和三维,就是list里面还嵌套一个list
列表的增加操作:
以nums = [6,3,24,67,31,7,10]为例子
第一种方式,append,从末尾给list添加元素,nums.append(9)就是把9这个元素放到了nums这个list的最后面,这是添加int类型的数据,如果要是添加字符串类型的,要把添加的内容用""或''括起来,print(nums)就会打印出[6, 3, 24, 67, 31, 7, 10, 9],可以看到9追加到最后的位置
第二种方式,insert,指定位置添加,如果指定的下标不存在,那么在末尾添加,nums.insert(1,5),print(nums)会打印出[6, 5, 3, 24, 67, 31, 7, 10],可以看到添加的元素5插入到下标为1的位置,之前的下标为1的元素3,现在它的小标是2
第三种方式,extend,从末尾给指定的list添加元素,nums.extend(['呵呵','哈哈']),print(nums)会打印出[6, 3, 24, 67, 31, 7, 10, '呵呵', '哈哈'],extend里传入一个可迭代对象,可以是list,tuple,set,字符串,字典,就是把后面list、tuple、set里的元素加入到nums里面,把字典的key加到nums里面,把字符串以单个字符的形式加到nums里面
列表的查询操作:
其实上面的print(nums)操作就是查询整个list,查看添加到list里面的元素是否已经添加成功都可以通过print(nums)来实现
查询单个元素可以通过print(nums[1])或print(nums[-1]) 的方式,查看下标对应的元素,下标-1代表最后一个元素
列表的修改操作:
直接通过赋值的方式来修改,如nums[0] = 88,在print(nums)会打印出[88, 3, 24, 67, 31, 7, 10],可以看到下标为0的6变成了88,修改成功了
列表的删除操作:
第一种方式是,del nums[3],然后print(nums)会打印出[6, 3, 24, 31, 7, 10],会把下标为3的元素67删掉
第二种方式,nums.pop(),删除列表里最后一个元素,然后print(nums)会打印出[6, 3, 24, 67, 31, 7],会把最后一个元素10删掉
第三种方式,nums.pop(2),删除指定下标的元素,然后print(nums)会打印出[6, 3, 67, 31, 7, 10],会把下标为2的元素24删掉
第四种方式,nums.remove(31),传入的是元素,不是下标,然后print(nums)会打印出[6, 3, 24, 67, 7, 10],list里面的元素31被删掉了
第五种方式,nums.clear(),清空列表里的所有元素,返回一个空列表,然后print(nums)会打印出[],list里面的所有元素都被删掉了
列表的排序操作:
通过sort()方式,但只是适用于int和float类型,如nums.sort(),然后print(nums)会打印出[3, 6, 7, 10, 24, 31, 67],默认是按升序排列
列表的翻转操作:
通过reverse()方式,翻转list中元素的位置,如果上面的排序要实现降序排列,可以通过nums.sort(reverse = True)实现,print(nums)打印出[67, 31, 24, 10, 7, 6, 3]
tu = [1,34,67,888,-777,13]
先tu.sort(),然后print(list(reversed(tu)))实现了list元素的翻转,也适用于元组
列表的拼接操作:
通过'+'连接两个list,实现list的拼接,如names + nums ,拼接后的列表是一个新的list,两个list(names、nums)仍然是分开的
list1 = [123,456]
list2 = [45,555]
print(list1 > list2)打印出True,比较第一个元素大小,第一个一样再比较后面的,以此类推
以上是list中比较重要的方法,还有一些不重要的方法这里暂时不介绍
2、元组的基本操作简介
元组的英文名字是tuple,叫元组和叫tuple是一个意思,元组用()表示,如L = (),表示这是一个空元组,里面没有值,元组里面也可以存放int、float、str、bool登录数据类型,可以把一个类型的存放在tuple里,如nums = (6,3,24,67,31,7,10),也可以把所有类型的都放在一个tuple里,如names = ('parker',123,10.5,True),元组是不可变变量,一旦定义了一个元组,就不能修改里面的值,元组没有增删改查操作,只有两个方法,一个是count(),另一个是index()
print(8 * (8,))打印出(8, 8, 8, 8, 8, 8, 8, 8)
print(nums.count())的作用是统计元组中元素出现的次数
print(nums.index())的作用是返回元组中元素的下标,如果有重复的,只打印第一个
tu = (1,34,67,888,-777,13)
sum(tu)显示226
sum(tu,74)显示300
3、字符串的基本操作简介
字符串就是用""或''括起来的表现形式,如'',这是一个空字符串,'abc'、'1234'、'Test'等这些都是字符串,字符串也是不可变变量,一旦定义了一个字符串,就不能修改里面的值,字符串也没有增删改查操作,字符串的方法很多,这里主要介绍一些常用的和重要的方法
startswith() ,它的作用是判断以什么开头,返回True或False,这里定义一个字符串,str2 = 'abc',print(str2.startswith('a))会打印出True,如果不是以指定字符开头返回False
endswith() ,它的作用是判断以什么结尾,返回True或False,这里定义一个字符串,str2 = 'abc',print(str2.endswith('c'))会打印出True,如果不是以指定字符结尾返回False
format() ,它的作用是格式化(参数比较多用format),格式化的内容用{}括起来,如sql = 'insert into user values({id},{name},{sex},{addr})'
sql2 = sql.format(addr = '北京', id = 1234, sex = '男', name = 'manu'),print(sql2)会打印出insert into user values(1234,manu,男,北京)
print('生成的sql语句是{sql},再来个{sql}'.format(sql = new_sql)),前面有两个一样的{sql},format里面只写一个就可以,format里面的sql和前面的加粗的sql保持一致,叫成别的名字也行,只要能对应上就行
d = {'name':'ssj','age':22}
print('{name},{age}'.format_map(d)),format_map传入的是一个字典,没有format好用
''.join(),它的作用是拼接字符串,如('*'.join(['hello','world','123'])) ,用*连接list里的各元素,join里传入的可以是list,也可以是tuple,还可以是set,list、tuple以及set里的元素必须是字符串类型,用特殊符号、字母、数字或字符串都可以连接,然后print('*'.join(['hello','world','123']))打印出来一个字符串
lstrip() ,它的作用是去掉字符串左边的空格和换行,如print(' \n aaa'.lstrip())打印出aaa
rstrip(),它的作用是去掉字符串右边的空格和换行,如print('mysql \n'.rstrip())打印出mysql
strip(),它的作用是去掉字符串两边的空格和换行,如print('\n bbb \n'.strip())打印出bbb,()里也可以去掉指定的字符串,如name = 'sun,abs',print(name.strip('s'))会打印出un,ab,如name = 'un,abs',print(name.strip('s'))会打印出un,ab
replace(),它的作用是替换字符串,如print('mysql is db.'.replace('mysql','oracle'))会打印出oracle is db.
split(),它的作用是分割字符串,返回一个list,如print('1+2+3+4'.split('+'))会打印出['1', '2', '3', '4']
splitlines(),它的作用是按照换行符分割,返回一个list,如print('1+2+3\n1+2+3+4'.splitlines())会打印出['1+2+3', '1+2+3+4']
4、切片的基本操作简介
切片的英文名是slice,可以对列表、元组和字符串进行切片操作,列表切片后仍然是一个列表,元组切片后仍然是一个元组,字符串切片后仍然是一个字符串,member[1:3]表示取出下标值是1和2的元素,如果member[:3]表示取出下标值是0,1,2的元素,如果member[1:]表示取出下标值从1到最后的元素,还有一种是member[:]表示是对原列表的copy,member[:10:2]表示取出从下标0-9的元素,2代表步长,就是每间隔一个取一个元素,实际上应该取出下标是0,2,4,6,8的元素,member[::-1]会从后取元素,然后打印出来,L[-2:-1]代表下标是倒数第二个的值
5、字典的基本操作简介
字典的英文名是dict,字典的表现形式是{},这表示空字典,也可以user_info = {'name':'哈哈','age':'22'},字典相比list取值更快,只要print(user_info['name'])就可以把哈哈打印出来,字典是通过key-value存取的,只要找到key,就可以找到对应的value,字典有增删改查操作,下面依次介绍
字典的增加操作:
第一种方式:可以通过user_info['addr'] = '北京'
第二种方式:user_info.setdefault('sex','男')
第三种方式:dict.update(dict2) # 把dict2里的key和value放到dict里,如下:
dict = {'name':'tim','age':22}
dict2 = {'sex':'female'}
dict.update(dict2)
print(dict) 打印出{'age': 22, 'name': '哈哈', 'sex': 'female'}
字典的查询操作:
第一种方式,print(user_info['name']),如果name不存在的话会报错,如果存在会打印出对应的value
第二种方式,print(user_info.get('name')),如果name不存在的话会返回None,如果存在会打印出对应的value
字典的删除操作:
第一种方式,del user_info['name'],可以删除字典里的name和它对应的value
第二种方式,user_info.pop('age'),这里要传入一个key,然会后删除字典里的name和它对应的value
第三种方式,user_info.popitem(),随机删除一个key和value
第四种方式,user_info.clear(),全部删除,返回一个空字典
字典的修改操作:
第一种方式,user_info['name'] = 'nhy',直接赋值
第二种方式,user_info.update(name = '孙树江')
dict1 = dict((('a',97),('b',98),('c',99)))
print(dict1)打印出{'c': 99, 'b': 98, 'a': 97}
dict2 = dict(小甲鱼 = '让编程改变世界',谭浩强 = '让C语言改变历史')
print(dict2)打印出{'小甲鱼': '让编程改变世界', '谭浩强': '让C语言改变历史'}
dict3 = {}
print(dict3.fromkeys((1,2,3)))打印出{1: None, 2: None, 3: None}
dict3 = {}
print(dict3.fromkeys((1,2,3),'哈哈'))打印出{1: '哈哈', 2: '哈哈', 3: '哈哈'}
dict1 = {}
print(dict1.fromkeys((1,2,3),('one','two','three')))打印出{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
综上,上面介绍的方法都是比较常用的和实用的方法,要学会活学活用,多动手练习