python数据结构之列表详解(下)

一、列表的分片

列表分片用一对以冒号分隔的索引位置表示,格式为 列表[起始索引:结束索引]。比如要获取 students 中第三到第五个元素,也就是索引为 234 的元素,就要写成 students[2:5]。

students = ["xixi", "dodo", "biabia","小美","庄教授","美人鱼有大长腿","冰淇淋加点糖"]
print(students[2:5])
# 输出['biabia', '小美', '庄教授']
print(students[2:4])
# 输出['biabia', '小美']

由上述例子可见,结束索引-起始索引=列表分片中所含元素的个数。

二、列表的基础运算

1.成员运算符in

成员运算符in可以方便我们查找一个列表中是否存在某种元素,可以搭配if……else语句使用。

students = ["xixi", "dodo", "biabia","小美","庄教授","美人鱼有大长腿","冰淇淋加点糖"]
if "美人鱼有大长腿" in students:
    print("true")
# 输出true

2.列表的加法

列表的加法就是用加号将两个列表元素放在一起组成一个新的列表。加号前面的列表元素在新列表的前面,加号后面的列表元素在新列表的后面。

student1 = ["庄羽","虞美人","小森林"]
student2 = ["张彬彬","虞书欣","冰淇淋加点糖"]
print(student1+student2)
# 输出['庄羽', '虞美人', '小森林', '张彬彬', '虞书欣', '冰淇淋加点糖']
print(student2+student1)
# 输出['张彬彬', '虞书欣', '冰淇淋加点糖', '庄羽', '虞美人', '小森林']

 3.列表的乘法

列表*n可以生成一个原列表n倍的新列表。由以下例子可见列表*n为原列表的n个之和

student1 = ["庄羽","虞美人","小森林"]
student2 = ["张彬彬","虞书欣","冰淇淋加点糖"]
print(student1*3)
# 输出['庄羽', '虞美人', '小森林', '庄羽', '虞美人', '小森林', '庄羽', '虞美人', '小森林']
print(student2*2)
# 输出['张彬彬', '虞书欣', '冰淇淋加点糖', '张彬彬', '虞书欣', '冰淇淋加点糖']

三、元组

由于元组跟列表很相似,所以放在一块讲述。元组在外观上与列表不同,元素是用英文圆括号“()”包裹起来的。本质上:列表的元素是可以修改的,但是元组中的元素是不可以更改的。又因为圆括号还能用做数学运算中的小括号,所以元组的写法要在元素的末尾加个英文逗号

t1 = (1)
t2= (1,)
print(type(t1))
# 输出
print(type(t2))
# 输出

四、列表的扩展操作

1.zip()函数

 zip() 函数的作用是将两个长度相同的列表合并起来,相同位置的元素会被一一组对,变成一个元组。结果返回一个组合好的打包对象。

student1 = ["庄羽","虞美人","小森林"]
score1 = [100,99,99]
zip1 = zip(student1,score1)
print(zip1)#返回的是一个zip的地址,可以将其转换成列表结构输出
# 输出
print(list(zip1))
# 输出[('庄羽', 100), ('虞美人', 99), ('小森林', 99)]
# 得到的是列表中元组包裹的数据元素

2.enumerate()函数

“enumerate”单词本身意思是“枚举、数数”。所以对应的函数功能,就是一个一个地将列表中的元素数出来。它返回的是一个枚举对象,也需要我们用 list() 函数转换回列表。注:仍然会从0开始数

student1 = ["庄羽","虞美人","小森林"]
score1 = [100,99,99]
zip1 = zip(student1,score1)
print(enumerate(zip1))
# 返回enumerate对象的地址
print(list(enumerate(zip1)))
# 输出[(0, ('庄羽', 100)), (1, ('虞美人', 99)), (2, ('小森林', 99))]
# 列表中的元素仍然是使用元组包裹,元组中第一个元素是具体排名。

#enumerate()函数支持定义数数的起始数字。

student1 = ["庄羽","虞美人","小森林"]
score1 = [100,99,99]
zip1 = zip(student1,score1)
print(list(enumerate(zip1,1)))
# 输出[(0, ('庄羽', 100)), (1, ('虞美人', 99)), (2, ('小森林', 99))]
print(list(enumerate(zip1,2)))
# 输出[]
# 应该是只能输出一种枚举方法

3.range()函数

range(start, stop, step),返回一个 range 对象,要用 list() 函数转换成列表。

start:计数从start开始,不填时,默认从0开始

stop:计数到stop结束,但不包括stop

step:计数的间隔,不填时默认为1

print(list(range(1,10))) #输出1到9
print(list(range(0,10))) #输出0到9
print(list(range(0,11))) #输出1到10
print(list(range(0,11,2))) #输出1到10中的偶数
print(list(range(1,11,2))) #输出1到10中的奇数

#上述五条代码输出结果如下
#[1, 2, 3, 4, 5, 6, 7, 8, 9]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#[0, 2, 4, 6, 8, 10]
#[1, 3, 5, 7, 9]

你可能感兴趣的:(python,python,数据结构)