美文网首页
06-列表的操作

06-列表的操作

作者: 蛋挞先生L | 来源:发表于2018-07-22 13:57 被阅读0次

g列表的操作


列表相加操作

格式:变量 = 列表1 + 列表2
结果:集合两个列表所有元素的新列表
注意:+两侧都要是列表类型

# L = [1,2,3]
# L1 = [4,5,6]
# print(L+L1)

列表相乘操作

格式:变量 = 列表 * 整数
结果:原列表内所用元素复制N遍的新列表

# L = [1,2,3]
# print(L*2)

索引操作

变量[索引]

分片操作

  • 格式:变量 = 列表[:]
    获取整个列表
  • 格式:变量 = 列表[:结束索引]
    获取列表开头到结束索引之前的数据组成的列表
  • 格式:变量 = 列表[开始索引:]
    获取列表开始索引到列表末尾的数据组成的列表
  • 格式:变量 = 列表[开始索引:结束索引]
    • 获取开始索引和结束索引之间的数据组成的列表(包含开始索引,不包含结束索引)
  • 格式:变量 = 列表[开始索引:结束索引:间隔值]
    • 获取开始索引和结束索引之间的数据(按照间隔值来获取)组成的列表(包含开始索引,不包含结束索引)
# L = [1,2,3,4,5,6,7,8,9]
# L1 = L[6:3:-1]
# print(L1)

成员检测

  • 检测一个数据是否在列表中
    格式:值 in 列表
    结果:布尔值

  • 检测一个数据是否不在列表中
    格式:值 not in 列表
    结果:布尔值

列表的遍历操作


for...in

  • 格式:
    for 变量 in 列表:
    使用变量
# L = [1,2,3,4,5]
# for val in L:
#     print(val)

while

  • 格式
    i = 0
    while i<len(列表):
    使用列表中的元素(列表[i])
    i += 1
# L = [1,2,3,4,5,6,7]
# i = 0
# while i<len(L):
#     print(L[i])
#     i += 1

遍历同等长度的二级列表

列表 = [[值1,值2],[值1,值2],....]
for 变量1,变量2 in 列表:
    使用变量1和变量2

注意:变量1取二级列表中的第一个值,变量2取第二个值

# L = [[1,2],[3,4],[5,6]]
# for val,var in L:
#     print(val,var)

遍历非同等长度的二级列表

列表 = [[值1,值2],[值1,值2,值3],[值]...]
for 变量1 in 列表:
    for 变量2 in 变量1:
        使用变量2(变量2是二级列表中的每个值)
# L = [[1,2],[3,4],[5,6,7]]
# for val in L:
#     print(val,type(val))
#     for var in val:
#         print(var,type(var))

列表的十一种操作方法

copy() 复制列表

  • 涉及深浅拷贝,此为浅拷贝

clear()

  • 清空列表

append()
功能:向列表的末尾添加新的元素
格式:列表.append(值)
返回值:None
注意:新添加的值在列表的末尾,该函数直接操作原有列表

# L.append(8)
# L.append(7)
# print(L)

insert()
功能:在指定位置之前插入元素
格式:列表.insert(索引,值)
返回值:None
注意:直接改变原有列表

# L.insert(0,1)
# print(L)

extend()
功能:前一个列表继承另一个序列,即直接将另一个序列中的元素添加到这个列表中,如果这个序列是字符串,字符串中每个字符作为一个元素添加到列表中
格式:列表.extend(序列)
返回值:None
注意:直接改变原有列表

# L.append(L1)
# print(L)
# L.extend(L1)
# print(L)

pop()
功能:在列表中移除一个元素
格式:列表.pop(索引)
返回值:无
注意:没有指定索引,默认移除最后一个元素

# L.pop()
# L.pop(0) #可以传递索引值  来删除指定的元素
# print(L)

remove()
功能:移除指定的值,但只能移除列表中该值第一次出现的元素
格式:列表.remove(值)
返回值:无
注意:如果有索引的情况下推荐使用POP移除,效率比remove高

# L.remove([7,8,9])
# L.remove(8) #如果有多个相同的元素  默认删除第一个
# print(L)

index()
功能:获取某个元素在列表中的索引,只能获取第一个出现的该元素的索引,拥有3个参数
格式:index(元素,开始索引,结束索引)
返回值:整数
注意:值不存在与列表或指定区间内时抛出异常错误!

# print(L.index(8))
# print(L.index(7,5))
# L = [2,1,5,4,2,4,6,4,2,1,5]
# print(L.pop(L.index(5,L.index(5)+1)))
# print(L)

count()
功能:计算某个元素出现的次数
格式:列表.count(值)
返回值:整数

# L = [2,1,5,4,2,4,6,4,2,1,5]
# print(L.count(2))
# print(L.count(5))
# print(L.count(6))

sort()
功能:列表排序

  • 格式:列表.sort() 按照从小到大排序(数字)
  • 格式:列表.sort(reverse=True) 按照从大到小排序(数字)
  • 格式:列表.sort(key=函数) 对值进行指定的函数处理之后在从小到大排序
  • 格式:列表.sort(key=函数,reverse=True) 对值进行指定的函数处理之后在从大到小排序
    返回值:None
    注意:直接改变原有列表
# L = [2,1,4,3,7,6]
# L.sort()
# print(L)
# L = [2,1,4,3,7,6]
# L1 = L.sort()
# L1 = sorted(L)
# print(L)
# print(L1)

L = [
    {"name":"jack","age":18},
    {"name":"rose","age":22},
    {"name":"tom","age":102},
    {"name":"jerry","age":19}
    ]
L.sort(key=lambda x:x["name"])
print(L)

reverse()
功能:列表反转操作
格式:列表.reverse()
返回值:None

# L = [2,1,4,3,7,6]
# L.reverse()
# print(L)

列表推导式

列表的推导公式默认是层层嵌套的关系
格式:

例1:已知L = [1,2,3,4,5,6,7,8,9],求变量L内所有元素的平方组成的列表

for循环写法:

# L1 = []
# for val in L:
#     L1.append(val**2)
# print(L1)

列表推导式

# L1 = [var**2 for var in L]
# print(L1)

例2:求L中所有偶数的平方

for循环写法

# L1 = []
# for val in L:
#     if val % 2 == 0:
#         L1.append(val**2)
# print(L1)

列表推导式

# L1 = [val**2 for val in L if val%2==0]
# print(L1)

例3:L = ["jack","ada","tom","WE","file","continue","break"]求列表中所有元素的长度组成的列表

# L1 = [len(i) for i in L]
# print(L1)

例4:已知str="abc" str2="ABC" 求两个字符串中的元素的所有组合

# L1 = [x+y for x in str1 for y in str2 ]
# print(L1)

例5:求x,y组成的元组 x是1~5之间的偶数 y是1~6之间的奇数

# L1 = [x for x in range(1,5) if x % 2==0]
# print(tuple(L1))
# L2 = [y for y in range(1,6) if y % 2==1]
# print(tuple(L2))
#
# list1 = [(x,y) for x in range(2,6,2) for y in range(1,7,2)]
# print(list1)

# L = [(x,y) for x in range(1,5) if x%2==0 for y in range(1,7) if y%2==1]
# print(L)

例6:已知 L = [[1,2,3],[4,5,6],[7,8,9]][3,6,9]组成的列表

# L1 = [i[2] for i in L]
# print(L1)

例7:求上面列表中[1,5,9]组成的列表

# L1 = [L[i][i] for i in range(len(L))]
# print(L1)

# i = 0,1,2
# 当i = 0  L[i] = [1,2,3]  L[i][i] = 1
# 当i = 1  L[i] = [4,5,6]  L[i][i] = 5
# 当i = 2  L[i] = [7,8,9]  L[i][i] = 9

深浅拷贝

需要用到copy模块,import copy

赋值操作 赋值后的列表跟随元列表进行改变

  • 赋值操作直接把新变量的内存地址指向赋值的变量的内存地址,所以原变量变化时,新变量随之变化
# L = [2,1,4,3,[5,6]]
# L = [1,2,[3,4,[5,6]]]
# L1 = L
# L.append(5)
# L[2][2].append(7)
# print(L)
# print(L1)

浅拷贝 只拷贝外层列表 内层列表跟随原列表进行改变

  • 浅拷贝只能拷贝外层内容,内层内容相当于做了映射;所以原变量外层变化时,新变量不变化,原变量内层变化时,新变量跟着变化
# L1 = copy.copy(L)
# L.append(5)
# L[2][2].append(7)
# print(L)
# print(L1)

深拷贝 深拷贝拷贝整个列表 不跟随原列表进行改变

# L1 = copy.deepcopy(L)
# L.append(5)
# L[2][2].append(7)
# print(L)
# print(L1)

元组的操作

元组的遍历

for ... in

变量 = (值1,值2,值3...)
for 变量 in 元组:
    使用变量获取元组的每个值
# t = (1,2,3,4)
# for val in t:
#     print(val)

while

i = 0
while i<len(元组):
    使用元组变量[i]访问每个值
    i += 1
# t = (1,2,3,4)
# i = 0
# while i < len(t):
#     print(t[i])
#     i += 1

遍历长度相同的多级元组

元组 = ((值1,值2...),(值1,值2...)...)
for 变量1,变量2.. in 元组:
    使用变量1和变量2
# t = ((1,2),(3,4),(5,6))
# for val,var in t:
#     print(val,var)

遍历长度不同的多级元组

元组 = ((值1,值2...),(值1,值2...)...)
for 变量1 in 元组:
    for 变量2 in 变量1:
        使用变量2获取每个值
# t = ((1,2),(3,4,5),(6,7))
# for val in t:
#     for var in val:
#         print(val,var)

元组的操作方法

index()

获取指定值在元组中的索引值
格式:元组.index(值)
返回值:整数
print(t.index(2))

count()

计算某个值在元组中出现的次数
格式:元组.count(值)
返回值:整数
print(t.count(2))

元组推导式

  • 元组的推导式形式和列表的基本一致,唯一不一样的是生成的不是一个新的元组,而是一个生成器,生成器用for循环遍历出数值

基本格式:

格式: 变量 = (i for i in 元组)
结果:不是元组而是一个生成器

带条件格式:

格式: 变量 = (i for i in 元组 if 条件表达式)
结果:不是元组而是一个生成器

多循环推导式:

格式: 变量 = (x+y for x in 元组1 for y in 元组2)
结果:不是元组而是一个生成器   x+y可以是其他操作

带条件的多循环推导式:

格式: 变量 = (x+y for x in 元组1 for y in 元组2 if 条件表达式)
结果:不是元组而是一个生成器   x+y可以是其他操作

相关文章

  • 06-列表的操作

    g列表的操作 列表相加操作 格式:变量 = 列表1 + 列表2结果:集合两个列表所有元素的新列表注意:+两侧都要是...

  • 06-列表

  • 06-作业(列表)

    1.已知⼀个列表,求列表中⼼元素。 2.已知⼀个列表求所有元素和 3.已知⼀个列表输出所有奇数下标 4.已知⼀个列...

  • 06-创建列表

    本课案例 列表的定义 以统一形式呈现的一组相关内容。 列表的分类 无序列表、有序列表、定义列表和嵌套列表 列表的使...

  • 03.列表操作

    列表的操作 基本操作列表迭代与解析索引与分片列表数据操作其他操作 1. 基本操作 2. 列表迭代与解析 3. 索引...

  • 【数据类型】21、上机练习:容器类型操作

    目录一、列表、元组基本操作二、列表、元组高级操作三、集合基本操作四、字典基本操作 一、列表、元组基本操作 +,*,...

  • Python列表(list)知识点归纳

    列表 定义:一组有序数据的组合 列表的序列操作: 列表的遍历操作: 列表推导式 列表函数

  • HTML基础-06-列表

    1. 有序列表 语法 type 值:不写默认数字。可写大写字母、小写字母、罗马数字大小写 示例 输出image.p...

  • Python学习——列表简介

    Python学习——列表操作 列表: 列表内的元素可以通过索引来操作和使用 列表的修改、添加、删除: 修改: 添加...

  • 06-文件操作

    一、文件对话框 C#中共有三种文件对话框,分别用于不同的功能: (1)用于打开文件的对话框OpenFileDial...

网友评论

      本文标题:06-列表的操作

      本文链接:https://www.haomeiwen.com/subject/fcvlmftx.html