day3_列表、元组、字符串、切片和字典的基本操作

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')}

 

综上,上面介绍的方法都是比较常用的和实用的方法,要学会活学活用,多动手练习

转载于:https://www.cnblogs.com/laosun0204/p/7635421.html

你可能感兴趣的:(day3_列表、元组、字符串、切片和字典的基本操作)