引言:

我们之前学过整数,浮点数,字符串,今天带来的更具有包容性。

今天带来的是高级数据类型,包括列表,元组,集合和字典。根据他们特性不同,可以分为序列类型,集合类型,键值类型。

一,序列类型

1.1 列表类型

列表的标识是list。在英文中翻译为清单的意思,同理,在Python中,可以同样的理解。比如我们去超市购买了”梨子“,”苹果“,”香蕉“,如果我们用之前的知识,代码就是用3个变量,分别表示这3个物品:

item1="梨子"
item2="苹果"
item3="香蕉"

在编程中,最忌讳的就是重复性劳动,因此就引出列表的作用。

shopping_list = ["苹果","梨子","香蕉"]
print('今天我买了:')
for i in shopping_list:
print(i)

结果:

今天我买了:

苹果

梨子

香蕉

在上述第一行代码中,赋值的右边就是新认识的第一个数据类型---列表。

Python序列结构应用实验 python序列例题_for循环

列表的创建

注意:其中的数据项,可以是各种类型的数据(整数,浮点数,字符串)

假如,我突然想吃肉了,于是又买了肉,那么这个肉就需要假如这个例表中。用法是列表名.append(需要添加的数据项);

shopping_list.append("meat"),更多的如下:

Python序列结构应用实验 python序列例题_for循环_02

列表操作符

Python序列结构应用实验 python序列例题_for循环_03

列表操作符补充:两个列表连接在一起也可以用extend,用法是:list1.extend(list2),不过输出的时候,因为这种连接是在list1上直接修改的,所以输出print(list1)即可。

Python序列结构应用实验 python序列例题_元组_04

1.2 列表推导式

举一个简单的例子:将一个列表中的每一个元素都平方,输出新列表b

代码:

a=[1,2,3,4]
b=[]
for i in a:
b.append(i**2)
print(b)

结果:[1,4,9,16]

如果采用列表推导式,该怎么做呢“

a=[1,2,3,4]
b=[i**2 for i in a]
print(b)

这这里,列表式主要有两部分组成:

循环变量i**2

for循环  for i in a

除此之外,我们还可以在for循环后面添加一个if语句。

例如:用列表式输出10以内大于4的整数列表

a=[number for number in range(11) if number>4]
print(a)

结果:[5, 6, 7, 8, 9, 10]

1.3 元组类型

元组类型,英文单词是tuple。元组的创建和列表相似,但是元组创建之后不能够改变,也就意味着我们不能对元组进行增加,删除,拼接等操作。但是,我们可以提取其中的元素。因此,元组就适合保存一些“机密”数据,

Python序列结构应用实验 python序列例题_Python序列结构应用实验_05

元组的创建

注意:列表用的方括号,元组是圆括号。

1.4 索引和切片

通常字符串,元组,列表都是有长度的,我们用len()来查看他们的长度

例如:

school="电子科技大学"
school_list=['张三',"李四",'王五',"马冬梅"]
print("字符串的长度是:{}".format(len(school)))
print("列表的长度是:{}".format(len(school_list)))

结果:

字符串的长度是:6

列表的长度是:4

有了长度,那么我们就可以提取其中更多元素了。

补充:字符串中的各个元素都有自己的编号,电的编号就是0,学的编号就是5。

列表也是,张三的编号就是0,马冬梅的编号就是3。

因此,我们就可以根据编号进行索引。

程序:

school="电子科技大学"
school_list=["张三","李四","王五","马冬梅"]
a=school[1]
b=school_list[3]
print("{}的第2个元素是:{}".format(school,a))
print("{}的第4个元素是:{}".format(school_list,b))

结果:

电子科技大学的第2个元素是:子

['张三', '李四', '王五', '马冬梅']的第4个元素是:马冬梅

Python序列结构应用实验 python序列例题_字符串_06

正负向索引

索引是指访问序列中单个元素,访问序列中连续的多个元素叫做切片。

例如:

student = ["张三", "李四", "王五", "李雷", "韩梅梅"]
print(student[1:3])
print(student[2:4])
print(student[2:])
print(student[:2])
print(student[:])

结果:

['李四', '王五']

['王五', '李雷']

['王五', '李雷', '韩梅梅']

['张三', '李四']

['张三', '李四', '王五', '李雷', '韩梅梅']

规律:

冒号左空,从头取数;

冒号右空;取到末尾;

冒号左右都不空,左数取,右数舍。

从上述也能够发现,索引取到得到是列表中的元素,而切片是截取了列表中的某个片段,所以结果还是列表。

1.5 循环遍历

列表的循环遍历和字符串类似:

student_list = ["张三", "李四", "王五", "李雷", "韩梅梅"]
for s in student_list:
print(s)

结果:

张三

李四

王五

李雷

韩梅梅

接下来,我们把循环遍历和索引结合起来。

school=["北京大学","清华大学","上海交通大学","复旦大学","浙江大学"]
for i in range(0,len(school)):
print("排名第{}的大学是:{}".format(i+1,school[i]))

结果:

排名第1的大学是:北京大学

排名第2的大学是:清华大学

排名第3的大学是:上海交通大学

排名第4的大学是:复旦大学

排名第5的大学是:浙江大学