【Python基础012】列表的用法

        列 表 用 于 存 储 任 意 数目、任意类型的数据集合。在 Python 中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

1、创建列表

        (1)基本语法创建

        a = []

        创建整数列表:

a = [1, 2, 3, 4]

        同一个列表中不仅可以包含相同类型的元素,还可以包含不同类型的值。

        创建包含不同类型的列表:

a = [1, 2, 'abc', True, 3.14]

        (2)list()创建

         a = list()

        使用 list()可以将任何可迭代的数据转化成列表。 

a = list() # 创建一个空的列表对象

b = list("hello,world")

print(a)   # []

print(b)   # ['h', 'e', 'l', 'l', 'o', ',', 'w', 'r', 'l', 'd']

        (3)range()生成列表

        range([start,] end [,step]

        其中:

        start 参数:可选,表示起始数字,默认是 0;

        end 参数:必选,表示结尾数字;

        step参数:可选,表示步长,默认为 1。

        

list(range(1,10))   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

       (4)列表生成式

        [表达式 for item in 可迭代对象]

 [x for x in range(1,10) if x%2 == 0]   # [2, 4, 6, 8]

2、基本操作

        (1)添加

        ① append():列表的末尾追加一个新对象,每次只能是添加一个元素

a = [1, 2, 3, 4]

a.append(6)   # [1, 2, 3, 4, 6]

        ② +运算符操作:会创建一个新的列表对象,涉及到大量的复制操作,对于操作大量的元素不建议使用

        例:List1+List2

a = [1, 2, 3, 4]

b = [5, 6, 7]

a+b    #  [1, 2, 3, 4, 5, 6, 7]

        ③ extend():将将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象,可添加一个列表或者一个元素

a = [1, 2, 3, 4]

b = [5, 6, 7]

a.extend(b)  # [1, 2, 3, 4, 5, 6, 7]

a.extend('8')  # [1, 2, 3, 4, 5, 6, 7, '8']

        ④ insert():将指定的元素插入到列表对象的任意指定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。

a = [1, 2, 3, 4]

a.insert(2, 10)  # 在列表a的索引2处插入元素10   # [1, 2, 10, 3, 4]

        (2)查找

        ① 通过索引直接访问元素

        序列中的所有元素都是有索引的,编号从0 开始递增,最大到列表的长度减1。序列中的所有元素都可以通过索引访问。其中超出索引范围,会抛出异常。

a = [1, 2, 3, 4]
 
a[0] # 获取列表a中索引为0的元素,即列表中第1个元素  1

a[-1] # 获取列表a中索引为-1的元素,即列表中最后1个元素  4

        ② index()获取指定元素在列表中首次出现的索引

        语法是:

        index(value,[start,[end]])

        其中start,end为指定的搜索范围。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]
 
a.index(20) # 从列表中搜索第一个20的位置  1

a.index(20, 2) # 从列表索引位置2开始往后搜索第一个20的位置  6

a.index(20, 4, 7) # 从列表索引位置4到7这个范围,搜索第一个20的位置   6

        (3)修改

        修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

a[0] = ‘dhasaiidas’ # 修改列表a中第一个元素为dhasaiidas   ['dhasaiidas', 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

        (4)删除

        ① del 删除

        del 删除列表指定位置的元素。

        语法格式:del 元素。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

del a[2]   # [1, 20, 4, 10, 30, 20, 50, 30, 3, 5, 1]

        ② pop 删除

        pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

b=a.pop() # 删除最后一个元素  1

c=a.pop(2) # 删除下标为2的元素  3

        ③ remove 删除

        删除首次出现的指定元素,若不存在该元素抛出异常。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

a.remove(20) # 删除列表a中第一次出现的元素20  [1, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

        (5)乘法

        列表乘以一个数字n 会生成新的列表,在新的列表中原来的列表将会被重复n 次。

a = [1, 2, 3, 4]

b=a*3 # 返回的值是 将列表a复制了3次   [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

        乘法的作用为复制的用法还可以使用在字符串上。

        (6)列表的长度、最大值和最小值

        len、max和min这三个函数用于返回列表中元素的数量、列表中最大值、列表中的最小值。如果列表中同时包含整数和字符串类型的元素,那么使用max、min 函数就会抛出异常。

3、切片操作

        切片操作是从列表A 中获取一个子列表B。从A 中获取B,需要指定B 在A 中的开始索引和结束索引,因此,切片操作需要指定两个索引。对于列表的切片操作和字符串类似。切片是Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的语法格式如下:

        列表[起始偏移量start : 终止偏移量end [:步长step]]

        当start, end, step三个值为正数时

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[:]) # 默认从列表的开始到列表结束 ,步长为 1  [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[1:]) # 从列表的索引 1 开始到结束,步长为 1   [20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[:2]) # 从开始到索引 1,步长为 1   [1, 20]

print(a[1:3]) # 从列表索引 1 开始到索引 2,步长为 1  [20, 3]

print(a[1:6:2]) # 从列表索引 1 开始到索引 5,步长为 2   [20, 4, 30]

        当start, end, step三个值为负数时

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[-2:]) # 从列表的倒数第 2 个开始到列表结束  [5, 1]

print(a[-5:-3]) # 从倒数第 5 个开始到倒数第 4 个  [50, 30]

print(a[::-1]) # 从右到左反向提取  [1, 5, 3, 30, 50, 20, 30, 10, 4, 3, 20, 1]

4、常用方法

5、列表遍历

        列表创建后,可以使用循环进行遍历获取列表中的每个元素。

#for 循环遍历列表
a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

for value in a:
    print(value)   
#while 循环遍历列表
my_list = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]
# 定义变量
index = 0
# 定义变量记录列表元素个数
l = len(my_list)
while index < l:
    # 通过下标索引获取元素
    value = my_list[index]
    print(value)
    index+=1

6、 enumerate()函数

        enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中。enumerate() 方法的语法格式如下所示:

        enumerate (sequence,[start=0])

        其中sequence 表示一个序列、迭代器或其他支持迭代对象;start 表示下标起始位置。

seq = ['one', 'two','three']

for i, element in enumerate(seq):

    print(i,element)

# 0 one
# 1 two
# 2 three

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值