列表和元组的性质以及相关操作

列表和元组的性质以及相关操作

1.列表的索引和切片

列表的索引

列表的索引和字符串类似:

lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]

lst[0] lst[1] lst[2]

但是,列表与字符串不同的地方在于列表是能够发生改变的

如: lst[3] = "老大" #这步做操作在字符串中违法但是在列表操作中合法

列表的切片

列表的切片也与字符串类似

lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]

lst[2:5] # 得到["马芸", "周鸿医", "向华强"]

lst[:3] #得到["麻花藤", "王剑林", "马芸"]

lst[1: :2] #得到[ "王剑林", 周鸿医" ]

lst[2: :-1] #得到["马芸", "王剑林", "麻花藤"]

2.列表的增删改查

列表的增

1)lst.append("要增加的元素") #在列表末尾添加括号内的元素

2)lst.insert(插入的位置,"插入的元素") #在指定的列表索引处插入括号内的元素, 原来的元素向后移动一位

3)lst.extend() #迭代添加,注意是迭代

例: lst = ["王志文", "张一⼭", "苦海无涯"]

lst.extend(["麻花藤", "麻花不疼"])

#lst = ["王志文", "张一⼭", "苦海无涯","麻花藤","麻花不疼"]

lst.extend("abc")

#lst = ["王志文", "张一⼭", "苦海无涯","a","b","c"]

4)列表合并:

lst1 = ["麻花藤", "王剑林", "马芸"] , lst2 = ["周鸿医", "向华强"]

lst1 + lst2 = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]

列表的删

1) lst.pop("几号元素") #对列表删除并取出括号内的元素

lst.pop() #默认出列表最后一个元素

2) lst.remove("删除的元素")

#删除括号内指定的元素,若同名只会删除第一个(因为从左向右扫描)

注:remove()删除时若列表中不存在指定元素则会报错!

3) lst.clear() #清空列表(灰常暴力)

4) del lst[start : end] #切片删除(小暴力)

列表的修改

lst = ["太白", "太黑", "五色", "银王", "日天"]

1)列表能够直接访问元素进行修改

lst[1] = "太污" # 把1号元素修改成太污

2)列表也能够切片修改

lst[1:4] = ["李嘉诚个⻳⼉⼦"] #得到['太白', '李嘉诚个⻳⼉⼦', '日天']

3)列表还能带着步长修改

lst[1:4:3] = ["麻花藤", "哇靠"]

#这里注意如果切片时带着步长,要注意修改时元素的个数要对应一致

应改为: lst[1:4:3] = ["麻花藤"]

lst[0:4:2] = "a" #因为切片的点为0,2两处,赋值只有1个,因此报错

lst[0:4:2] = "ab" #因为切片的点为0,2两处,赋值有1个,但通过迭代可以变成2个,因此可以

lst[0:4:2] = "abc" #因为切片的点为0,2两处,赋值有3个,通过迭代可以变成3个,因此不行

4)列表调用replace()方法时只能替换字符串型元素不能替换int类型

5)str.join(seq) #将序列中的元素以指定的字符连接成一个新的字符串

str = "-"; seq = ("a", "b", "c"); # 字符串序列 print str.join( seq ); #"a_b_c"

其他操作

1) lst.count("关键字") #查询关键字出现的个数

2) lst.sort() #排序,默认升序

lst.sort(reverse = True) #降序

3)lst.reverse() #颠倒列表的顺序

3.元组

元组: 俗称不可变的列表.又被称为只读列表, 元组也是python的基本数据类型 之⼀, 用小括号括起来, 里面可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能改.

tu = (1, "太白", "李白", [], "怎么黑")

注意: 这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可 以变, 这取决于子元素是否是可变对象.

例:tu[3].append("你好啊") #这句话就合法,因为元组的子元素是列表,而列表可改

注:元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组

例: tu = (1,) #这是最低限度的元组,如果没有逗号则数据是数据本身

tu = (1) #这是int类型

tu = ("a") #这是str类型

tu =() #这是元组本身

4.range()

range(start : end : step) #能够创建一个数字列表,语法与切片类似,但是步长负数与正 数表达一致

例:range(10) #就是创建一个(0,1,2,3,4,5,6,7,8,9)的列表

range(0:20:5) #(0,5,10,15)

range(0:-10:-2) #(0,-2,-4,-6,-8),无法倒着取数,这是与字符串和列表不同的地方

猜你喜欢

转载自www.cnblogs.com/zy740/p/10986553.html