nas做网站要哪些东东,太原注册公司,上海网站建设科技公司,赞皇建站建设目录 一、一维列表的介绍和创建二、序列的基本操作1. 索引的查询与返回2. 切片3. 序列加 三、元素的增删改1. 添加元素2. 删除元素3. 更改元素 四、排序五、列表生成式 一、一维列表的介绍和创建 列表#xff08;list#xff09;#xff0c;也称数组#xff0c;是一种有序、… 目录 一、一维列表的介绍和创建二、序列的基本操作1. 索引的查询与返回2. 切片3. 序列加 三、元素的增删改1. 添加元素2. 删除元素3. 更改元素 四、排序五、列表生成式 一、一维列表的介绍和创建 列表list也称数组是一种有序、可变、允许重复元素的组合数据结构属于可变序列由方括号[]内、用逗号分隔的一组元素组成。 列表可存储多个元素以方便对一组数据整体操作。不同的列表的内存地址互不相同即id独立。 列表有两种创建方式直接将目的列表赋予变量称为赋值创建使用list()函数将任意组合转化为列表称为引用创建。 下文的列表均指一维列表。
# 空列表
lst []
lst list()# 赋值创建
lst [1, 2, 3]# 引用创建字典转列表转化前后元素不变
lst list({1: a, 2: b, 3: c, })print(lst, type(lst), id(lst))[1, 2, 3] class list 1937556730752列表的元素可以是任意数据类型的对象的引用也就是一维指针。所以列表实际上是一种二维指针用于存储一维指针。 在Python中通常不采用这种描述因为Python不支持指针的直接操作。但是列表的索引可以模拟二级指针。
二、序列的基本操作 以下操作适用于所有序列即列表、元组和字符串下文仅以列表为例。
1. 索引的查询与返回 索引描述了序列中的元素的位置是用于访问元素的操作方法分为正数索引和负数索引。 序列中的元素从左到右的正数索引依次为0, 1, 2, ... , n从右到左的负数索引依次为-1, -2, ... , -n。 可以通过查询索引获取对应元素的值。
lst [1, 2, 3]
print(lst[0], lst[-3])1 1也可以使用index()函数通过元素的值返回对应的正数索引。若列表存在相同的元素只返回最小的正数索引若列表不存在对应的元素报错ValueError. index(arg1, arg20, arg3len(list))可限定索引区间默认步长为1开始索引为0结束索引为列表长度元素个数区间形式与range函数相似即左闭右开。 若arg3未传递传递了负数或者传递了小于arg2的值则参数arg3无效函数功能为返回索引为arg2上的指定元素的正数索引。一般不会用到该功能。特别的若arg2arg3一定会报错因为索引区间为空。
lst [1, 2, 3, 4, 1]
# index(element):返回指定元素的索引
print(lst.index(1))
# index(element, index):返回限定位置上的指定元素的索引
print(lst.index(1, 4))
# index(element, start, stop):返回限定位置区间上的指定元素的索引
print(lst.index(1, 1, 5))0
4
42. 切片 切片是指获取序列中的子序列是访问序列中的多个元素的一种方式其结果是原序列片段的拷贝。 list[start0:stop-1:step1]就是将整数序列range(start,stop,step)作为从原序列所取元素的索引获取并拷贝这些元素然后返回一个具有新id的子序列。 其参数默认值与range类似。特别的若start或stop为负数索引则先转化为正数索引再遵循range对应。
lst [1, 2, 3, 4, 5, 6]
print(lst[1:5:2], lst[1:-1:2])
print(id(lst), id(lst[1:5:2]))# 第一个冒号不能省略第二个可以省略
print(lst[1:5], lst[1::2], lst[:5:2])
print(lst[1:], lst[:5], lst[::2])[2, 4] [2, 4]
1383891593536 1383891563392[2, 3, 4, 5] [2, 4, 6] [1, 3, 5]
[2, 3, 4, 5, 6] [1, 2, 3, 4, 5] [1, 3, 5]3. 序列加 同类型的序列之间可以进行序列加运算即将后一个序列的元素依次添加到前一个序列里。
lst list([1, 2])
print(lst lst)[1, 2, 1, 2]三、元素的增删改
1. 添加元素
append(element)函数在列表末尾添加一个元素。extend(iterable)函数在列表末尾依次添加一个组合内的元素。insert(index, element)函数在指定索引插入一个元素后续元素索引1. 上述的函数没有返回值也就是说它们的操作是在原列表上进行的但列表的id仍会改变。 序列加赋值运算可以替代extend()函数但列表没有被分配-运算。
lst list([1, 2])
# 不能将组合内的元素加入列表
lst.append([3])
print(lst)# 集合是无序组合添加次序遵循特殊的哈希映射
lst.extend({5, 4})
print(lst)# 也可以简化为赋值运算
lst (7, 8) # 元组一种序列属于组合类型
print(lst)# 负数索引视为正数索引输入
lst.insert(-7, 0)
print(lst)[1, 2, [3]]
[1, 2, [3], 4, 5]
[1, 2, [3], 4, 5, 7, 8]
[0, 1, 2, [3], 4, 5, 7, 8]2. 删除元素
remove(element)函数删除一个指定元素若存在重复元素取最小正数索引。pop(index-1)函数删除一个指定索引上的元素参数默认值为-1.clear()函数清空列表中的所有元素。del语句删除一个指定索引上的元素也可以删除指定切片范围内的元素甚至删除列表本身。
lst list([1, 2, 3, 4, 5])
lst.remove(5)
print(lst)lst.pop(0)
print(lst)
lst.pop()
print(lst)lst.clear()
print(lst)lst list([1, 2, 3, 4, 5])
del lst[0]
print(lst)del lst[1:]
print(lst)del lst
print(lst)[1, 2, 3, 4]
[2, 3, 4]
[2, 3]
[][2, 3, 4, 5]
[2]
NameError: name lst is not defined.3. 更改元素 列表元素的更改主要通过索引查询和切片替换它们的功能与上述的添加和删除有所重叠。 索引查询不仅能获取指定索引上的元素的值也可以对它进行修改切片替换可将切片内的元素依次替换为一个组合内的元素。当切片步长为1时组合的元素数量不受限制否则切片的元素个数须等于组合的元素个数。
lst list([1, 2, 3, 4, 5])
# 逐个修改
lst[0] 0
print(lst)# 批量修改
lst[1:3] [10, 20, 30, 40]
print(lst)# 批量删除
lst[1:5] []
print(lst)# 跳跃替换
lst[::2] ab
print(lst)[0, 2, 3, 4, 5]
[0, 10, 20, 30, 40, 4, 5]
[0, 4, 5]
[a, 4, b]四、排序 sort(reverseFalse)是一个无返回值函数参数默认值为升序排列可以对列表内的元素进行排序。对于基本数据类型的元素数值类型可以互相排序字符串不能与数值排序。 sorted(reverseFalse)与前者的区别在于它可以对任意组合内的元素进行排序并返回一个排序后的列表。 对于值的大小相同但类型不同的数值遵循int float bool。 字符串的比较将在后续篇章说明排序算法则在进阶篇中展开。
lst [0, 1, 1.0, True, 2]
# 升序排列
lst.sort()
print(lst)# 降序排列
print(sorted(lst, reverseTrue))[0, 1, 1.0, True, 2]
[2, 1, 1.0, True, 0]五、列表生成式 生成式是for遍历的缩简语句用于快速生成组合格式为[运算式 for 变量 in 可迭代对象]即遍历可迭代对象将其每个元素经运算后的结果加入所生成的组合中。
print([i**2 for i in range(5)])[0, 1, 4, 9, 16]