1. 列表(list)操作
列表是最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
定义列表:
1 love=['i love you','我爱你','あなたのことが好きです']#list列表定义用中括号,中间用逗号隔开,当然要在英文输入下
通过下标访问列表中的元素,下标从0开始计数
1 love=['i love you','我爱你','あなたのことが好きです'] 2 print(love[0]) 3 print(love[1]) 4 print(love[2]) 5 print(love[-1])#还可以倒着取 6 print(love[-2])
输出:
C:\Python\python.exe C:/Python/leetcode/1.py i love you 我爱你 あなたのことが好きです あなたのことが好きです 我爱你 Process finished with exit code 0
切片:取多个元素
1 love=['i love you','我爱你','あなたのことが好きです','사랑해','吾爱汝','我愛你'] 2 3 print(love[1:4])#取下标1至下标4之间的数字,包括1,不包括4 4 # 输出:['我爱你', 'あなたのことが好きです', '사랑해']切片之后得到的还是一个列表 5 6 print(love[1:-1])#取下标1至-1的值,不包括-1 7 # 输出:['我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝'] 8 9 print(love[:3])#从头开始取,一直取到下标2,3不取 10 # 输出:['i love you', '我爱你', 'あなたのことが好きです'] 11 12 print(love[3:])#从下标3开始取,一直到最后一个,必须不能写-1,只能这么写 13 # 输出:['사랑해', '吾爱汝', '我愛你'] 14 15 print(love[3:-1])#这样-1就不会被包含了 16 # 输出:['사랑해', '吾爱汝'] 17 18 print(love[0::2])#后面的2是代表步长是2,就是每隔一个元素,就取一个 19 # 输出:['i love you', 'あなたのことが好きです', '吾爱汝'] 20 21 print(love[::2])#和上句效果一样 22 # 输出:['i love you', 'あなたのことが好きです', '吾爱汝']
追加
love=['i love you','我爱你','あなたのことが好きです','사랑해','吾爱汝','我愛你'] love.append('我是新来的')#.append是在列表的最后面添加新的元素 love.append([123])#再次在后面添加一个列表 print(love) #输出:['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你', '我是新来的', [123]]
插入
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',] love.insert(1,"放到下标是1的位置")#注意这里要用双引号来包括单引号 print(love) #输出:['i love you', '放到下标是1的位置', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你'] love.insert(5,9999)#把数字 9999 放到下标为5的位置 print(love) #输出:['i love you', '放到下标是1的位置', '我爱你', 'あなたのことが好きです', '사랑해', 9999, '吾爱汝', '我愛你']
修改
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',] love[1]='我不爱你了' print(love) #输出:['i love you', '我不爱你了', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你']
删除
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',] del love[1]#指定下标删除元素 print(love) #输出:['i love you', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你'] love.remove('i love you')#.remove可以删除指定元素 print(love) #输出:['あなたのことが好きです', '사랑해', '吾爱汝', '我愛你'] love.pop()#删除列表最后一个元素 print(love) #输出:['あなたのことが好きです', '사랑해', '吾爱汝']
扩展
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',] love2=[1,2,3] love.extend(love2)#.extend把列表love2中的元素添加到列表love中 print(love) #输出:['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你', 1, 2, 3]
拷贝
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',] love2=love.copy()#把列表love复制给列表love2 print(love2) #输出:['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你']
统计
love=['i love you', '我爱你', 'あなたのことが好きです','i love you', '사랑해', '吾爱汝', '我愛你','i love you'] a=love.count('i love you')#统计列表love当中 'i love you' 的个数 print(a) #输出:3
排序
反转排序.reverse()
列表反转排序。把原列表中的元素顺序从左至右反转过来重新存放,而不会对列表中的参数进行排序整理,即不会根据大小排序。
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',23,1,89] love.reverse()#列表反转排序。把原列表中的元素顺序从左至右反转过来重新存放,而不会对列表中的参数进行排序整理,即不会根据大小排序。 print(love) #输出:[89, 1, 23, '我愛你', '吾爱汝', '사랑해', 'あなたのことが好きです', '我爱你', 'i love you']
升序排序.sort()
对列表内容进行升序排序,直接修改原列表的排序,排序后的新列表会覆盖原列表。注意:这种情况下列表里的元素必须是同一种数据类型
love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你',23,1,89] love.sort() print(love) #输出:Traceback (most recent call last): # File "C:/Python/leetcode/1.py", line 5, in <module> # love.sort() #TypeError: unorderable types: int() < str() 列表里既有数字又有字符串,Python就没办法比较 ############################################### love=['i love you', '我爱你', 'あなたのことが好きです', '사랑해', '吾爱汝', '我愛你'] love.sort()#列表里全是字符串类型的元素,就可以进行升序排列,同时新的顺序会覆盖原有顺序 print(love) #输出:['i love you', 'あなたのことが好きです', '吾爱汝', '我愛你', '我爱你', '사랑해'] ############################################### love=[2, 4 ,3,16, 0, 9] love.sort()#列表里全是数字类型的元素,就可以进行升序排列,同时新的顺序会覆盖原有顺序 print(love) #输出:[0, 2, 3, 4, 9, 16]
获取下标
love=['i love you', '我爱你', 'あなたのことが好きです','我爱你', '사랑해', '吾爱汝', '我愛你'] a=love.index('我爱你')#只返回找到的第一个下标 print(a) #输出:1
2、元组(tuple)操作
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表,它只有2个方法,一个是count,一个是index
定义元组:
统计
name=('彭于晏','胡歌','在下','胡歌','胡歌','胡歌') a=name.count('胡歌')#统计'胡歌'在列表里出现的次数 print(a) #输出:4
获取下标
name=('彭于晏','胡歌','在下') a=name.index('在下')#找出'在下'的下标索引值 print(a) #输出:2