python--python基础--序列介绍

目录

一:序列

1.1 索引

1.2 切片

1.3 序列相加

1.4 序列乘法

1.5 检查某个元素是否是序列的成员

1.6 计算序列的长度,最大值,最小值

1.7 序列的其它内置函数

二 列表

2.1列表的创建和删除

2.2 访问列表

2.3 遍历列表

2.4 添加,修改,删除列表元素

2.5对列表进行统计和计算

2.6对列表进行排序

2.7 列表推导式

2.8 二维列表

三 元组

3.1元组的创建和删除 

3.2 访问元组元素

3.3 修改元组元素

3.4元组推导式

四.字典

4.1字典的创建和删除

4.2 通过键值对访问字典

4.3 遍历字典

4.4 添加,修改和删除字典元素

4.5 字典推导式

五.集合

5.1集合的创建

5.2集合的添加和删除

5.3集合的运算


一:序列

在python中,序列是最基本的数据结构,它是一块用于存放多个值的连续内存空间。

python中内置了5个常用的序列结构,分别是列表,元组,集合,字典和字符串。

接下来介绍一下序列的公共操作。

1.1 索引

python中每一个元素都有一个编号,也成为索引。这个索引是从0开始递增的。

【注意】:python的索引比较特殊,它的索引可以是负数,负数的索引从右往左计数,

也就是从最后一个元素开始计数,即最后一个元素的索引值是-1.

verse = ["春天","夏天","秋天","冬天"]
print(verse[2]) #秋天
print(verse[-1]) #冬天

1.2 切片

切片是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。

切片操作的语法:

sname[start : end : step]  #用的是冒号,不是逗号 ,区间是左闭右开

verse = ["春天","夏天","秋天","冬天"]
print(verse[1:3:1])  #['夏天', '秋天']

1.3 序列相加

在python中,支持两种类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用(+)运算符实现

verse = ["春天","夏天","秋天","冬天"]
verse2 = ["昨天","今天","明天"]
print(verse+verse2)
#['春天', '夏天', '秋天', '冬天', '昨天', '今天', '明天']

[说明]:进行序列相加时,相同类型的序列指的是相同为列表,元组,集合等,而序列中元素类型可以不同

1.4 序列乘法

在python中,使用数字n乘以一个序列会生成新的序列。新序列内容为原来序列被重复n次的结果。

phone = ["apple","华为","小米"]
print(phone*3)
#['apple', '华为', '小米', 'apple', '华为', '小米', 'apple', '华为', '小米']

1.5 检查某个元素是否是序列的成员

in关键字检查某个元素是否为序列的成员

not in 关键字实现检查某个元素是否不包含在指定的序列中

1.6 计算序列的长度,最大值,最小值

len()函数:返回序列包含多少个元素

max()函数:返回序列中的最大元素

min()函数:返回序列中的最小元素

num = [12,14,66,9,245,1,90]
print(len(num))  #7
print(max(num))  #245
print(min(num))  #1

1.7 序列的其它内置函数

list() :将序列转换为列表

str(): 将序列转换为字符串

sum():计算元素和

sorted():对元素进行排序

reversed():反转序列中元素

enumerate():将序列组合为一个索引序列,多用在for循环中

二 列表

2.1列表的创建和删除

1)使用赋值运算符直接创建列表

list1 = ["我是最棒的","我是做大事的人","我一定会成功"]

2)创建空列表

emptylist = []

3)创建数值列表

使用list()函数

list2 = list(["hello","world"])
#注意中括号不能省掉

也可以把list()函数直接将range()函数循环出来的结果转换为列表

list(range(10,20,2))

4)删除列表

del listname

2.2 访问列表

list1 = ["我是最棒的","我是做大事的人","我一定会成功"]
print(list1[2])  #我一定会成功

还可以用之前讲的index()

2.3 遍历列表

1)直接用for循环实现

for item in listname:
    print(item)

2)使用for循环和enumerate()函数可以实现同时输出索引值和元素内容

list1 = ["我是最棒的","我是做大事的人","我一定会成功"]
for index, item in enumerate(list1):
    print(index,item)  #我一定会成功
#0 我是最棒的
#1 我是做大事的人
#2 我一定会成功

补充:python中print()函数默认换行输出,为了不换行输出,我们可以在print()里面使用"end = ' ' "

2.4 添加,修改,删除列表元素

1)添加元素

除了使用加号“+”将两个序列连接,我们推荐使用append()方法

phone = ["oppo","三星","小米","华为"]
phone.append("apple")
print(len(phone))
print(phone)

另外,还可以使用insert()方法用于向列表的指定位置插入元素,但是该方法效率不高。

补充:如果要想将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend() 方法实现。

phone1 = ["oppo","三星","小米","华为"]
phone2 = ["诺基亚","魅族"]
phone1.extend(phone2)
print(phone1)
#['oppo', '三星', '小米', '华为', '诺基亚', '魅族']

2)修改元素

修改元素只需要通过索引获取该元素,然后再为其重新赋值即可。

phone1 = ["oppo","三星","小米","华为"]
phone1[2]= "红米"
print(phone1)
# ['oppo', '三星', '红米', '华为']

3)删除元素

  • 根据索引删除
del phone[1]
  • 根据元素值删除
phone.remove("华为")

2.5对列表进行统计和计算

1)获取指定元素出现次数

phone1 = ["oppo","三星","小米","华为","oppo"]
print(phone1.count("oppo"))  #2

2)获取指定元素首次出现的下标

phone1 = ["oppo","三星","小米","华为","oppo"]
print(phone1.index("oppo"))  #

3)统计数值列表的元素和

grade = [222,44,66,88,9,2]
print(sum(grade)) #431

2.6对列表进行排序

1)使用sort()方法 : 原列表会发生改变

grade = [222,44,66,88,9,2]
print(grade.sort()) #None
print(grade) #[2, 9, 44, 66, 88, 222]

默认是升序排列,若想降序排列,就需要用到reverse = True

grade = [222,44,66,88,9,2]
grade.sort(reverse=True)
print(grade) #[222, 88, 66, 44, 9, 2]

2)使用内置的sorted()函数实现

注意sorted()方法进行排序后,原来列表的元素顺序不变,因为会建立一个原列表的副本。

grade = [222,44,66,88,9,2]
new_grade= sorted(grade)
print(grade) #[222, 44, 66, 88, 9, 2]
print(new_grade) #[2, 9, 44, 66, 88, 222]

2.7 列表推导式

使用列表推导式可以快速生成一个列表

list = [expression for var in range]
import random
randomnumber = [random.randint(10,100) for i in range(10)]
print(randomnumber)
#[84, 20, 73, 31, 31, 76, 30, 80, 45, 53]

2.8 二维列表

1)直接定义二维列表

list1 = [['a','b','c'],['d','e','f'],['q','w','e'],['a','s','d']]
print(list1)
# [['a', 'b', 'c'], ['d', 'e', 'f'], ['q', 'w', 'e'], ['a', 's', 'd']]

2)使用嵌套的for循环创建

arr = []
for i in range(4):
    arr.append([])
    for j in range(5):
        arr[i].append(j)
print(arr)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]

3)使用列表推导式创建

arr = [[j for j in range(5)] for i in range(4)]
print(arr)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]

三 元组

3.1元组的创建和删除 

1)使用赋值运算符直接创建元组

num1 = (12,34,67,11,3,99)
print(num1)
print(type(num1))
#(12, 34, 67, 11, 3, 99)
#<class 'tuple'>

2)创建空元组

emptytuple = ()

3)创建数值元素

print(tuple(range(10,20,2)))
#(10, 12, 14, 16, 18)

4)删除元素

del tuplename

3.2 访问元组元素

team = ("火箭","骑士","快船","湖人")
print(team[1])
for index, item in enumerate(team):
    print(index,item)
#骑士
#0 火箭
#1 骑士
#2 快船
#3 湖人

3.3 修改元组元素

元组是不可变序列,所以我们不能对它的单个元素值进行修改,

但是元组也不是完全不能修改,我们可以对元组进行重新赋值

coffeename = ("拿铁","卡布奇诺","曼特宁")
coffeename = ("拿铁2","卡布奇诺3")
print(coffeename) #('拿铁2', '卡布奇诺3')

3.4元组推导式

#转换为元组要使用tuple()函数

import random
randomnumber = (random.randint(10,100) for i in range(10))
randomnumber = tuple(randomnumber)
print(randomnumber)
# (69, 30, 31, 50, 22, 86, 50, 32, 29, 85)

四.字典

字典与列表类似,也是可变序列,不过与列表不同,它是无序的可变序列.

保存内容是以键-值对的形式存放的。

键是唯一的,值有多个

不允许同一个键出现两次,如果出现两次,则后一个值会被记住

4.1字典的创建和删除

1)创建字典是,在键和值之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一对"{ }"中。

dictionary = {"qq":"282439859","bolg":"yezonghui"}
print(dictionary)
print(type(dictionary))
#{'qq': '282439859', 'bolg': 'yezonghui'}
#<class 'dict'>

2)通过映射函数创建字典

di = dict(zip(list1,list2))

补充: zip()函数:用于将多个列表或者元组对应位置的元素组合为元组,并返回包含这些内容的zip对象

name = ["q","w","e","r"]
sign = ["1","2","3","5"]
dirctionary2 = dict(zip(name,sign))
print(dirctionary2)
# {'q': '1', 'w': '2', 'e': '3', 'r': '5'}

4.2 通过键值对访问字典

使用[] 或者get()方法

d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
print(d1["夏天"])  #学数学
print(d1.get("秋天"))  #学英语

4.3 遍历字典

获取字典视图:

 keys() : 获取字典中所有key

values():获取字典中所有value

items():获取字典中所有key,value对

d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
for item in d1.items():
    print(item)
#('春天', '学语文')
#('夏天', '学数学')
#('秋天', '学英语')
#('冬天', '学历史')
d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
for key,value in d1.items():
    print(key,value)
#春天 学语文
#夏天 学数学
#秋天 学英语
#冬天 学历史

4.4 添加,修改和删除字典元素

直接添加

d1 = {"春天":"学语文","夏天":"学数学","秋天":"学英语","冬天":"学历史"}
d1["今天"] = "学习"
print(d1)
#{'春天': '学语文', '夏天': '学数学', '秋天': '学英语', '冬天': '学历史', '今天': '学习

删除

del d1["春天"]

4.5 字典推导式

import random
ranomdict = {i:random.randint(10,100) for i in range(1,5)}
print(ranomdict)
#{1: 77, 2: 77, 3: 100, 4: 79}

五.集合

5.1集合的创建

1)直接使用{}创建

set1 = {1,4,6,7}

2)使用set()函数创建

set1 = set(1,2,3,4,8)

[注意]:创建空字典的时候,只能使用set()实现,因为一对{}表示创建空字典

5.2集合的添加和删除

1)向集合中添加元素使用add()方法实现

2)从集合中删除元素使用remove()

5.3集合的运算

1)两个集合是否相等 ==或者 !=

2)是否是子集 issubset()

3)  是否是超集: issuperset()

4) 交集: & 或者intersection()

5)并集: | 或者union()

6)差集: - 或者difference()

[注]:序列中字符串的学习将在下一个博客进行总结

猜你喜欢

转载自blog.csdn.net/yezonghui/article/details/113244669