python中的列表

变量可以存储一个元素,而列表是一个大容器,可以存储N多个元素,程序可以方便地对这些元素进行整体操作

列表相当于其它语言中的数组

列表示意图

目录

1.列表的创建与删除

2.列表的查询

        1.获取列表中指定元素的索引(index())

        2.获取列表中的单个元素

       3. 获取列表中的多个元素 

2.列表元素的增删改

      1.判断指定元素在列表中是否存在

        2.列表元素的遍历(就是将列表中的元素一起输出)

         3.列表元素的增加

       4. 列表元素的删除

      5.  列表元素的修改

3.列表元素的排序

4.列表生成式


1.列表的创建与删除

        列表需要使用[],元素之间使用英文的逗号进行分割。lst=[1,'hello world',2.563]

        列表的创建方式主要有两种

                使用中括号 lst=[1,'hello world',2.563]

                使用内置函数list()

lst1 = [1, 'hello world', 9.66]
lst2 = list([1, 'hello world', 9.66])
print(lst1 is lst2)
print(id(lst1), id(lst2))
print(type(lst1), type(lst2))

        列表的特点

  1.         列表元素按顺序有序排序
  2.         索引映射唯一数据
  3.         列表可以存储重复数据
  4.         任意数据类型混存
  5.         根据需要动态分配和回收内存    

2.列表的查询

        1.获取列表中指定元素的索引(index())

 print(列表名.index(要查询元素,start,stop))

        2.获取列表中的单个元素

lst1 = [1, 'hello', 9.66, 'hello', '1213', 2.00, 9494]
lst2 = list([1, 'hello world', 9.66])

print(lst1.index('hello'))  # 如果列表中存在N个相同元素,只返回相同元素的第一个元素的索引
# print(lst2.index('hello'))  # ValueError: 'hello' is not in list(查询元素不存在)
print(lst1.index('hello', 0, 2))  # print(列表名.index(要查询元素,start,stop))获取的为索引值
print(lst1[1])
print(lst1[-6])  # 获取索引为1和-6的元素
print(lst1[10])  # 获取lst1中索引为10的元素,元素索引超限,索引会报错

       3. 获取列表中的多个元素 

          需要用到切片的形式

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 90]
# start为1,stop为6,step为1
print(lst1[1:6:1])  # [20, 30, 40, 50, 60]
print(lst1[1:6:])  # [20, 30, 40, 50, 60]  # 默认步长是1
print(lst1[1:6])  # [20, 30, 40, 50, 60]
# start=1,stop=6,step=2
print(lst1[1:6:2])  # [20, 40, 60]
print(lst1[:6:2])   # [10, 30, 50]  #  默认索引从0开始
print(lst1[1::2])   # [20, 40, 60, 80, 90]  # 默认索引从最后一个元素结束
'------step为负数时--------'
print(lst1[::-1])  # [90, 90, 80, 70, 60, 50, 40, 30, 20, 10]
print(lst1[7::-1])  # [80, 70, 60, 50, 40, 30, 20, 10] 从索引为7的地方,逆着数步长
print(lst1[6:0:-2])  # [70, 50, 30](一定要注意,stop能不能取到)

2.列表元素的增删改

      1.判断指定元素在列表中是否存在

        2.列表元素的遍历(就是将列表中的元素一起输出)

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 90]

print(10 in lst1)  # True
print(100 in lst1)  # False
print(10 not in lst1)  # False
for _ in lst1:
    print(_)

         3.列表元素的增加

lst1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
lst2 = [200, 300, 400, 500]
lst3 = [600, 700, 900]
lst4 = [0, 1, 2, 3, 4, 8, 9]
lst1.append(100)  # 在lst1列表的末尾添加一个元素
print(lst1)  # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

lst1.append(lst2)   # 将lst2作为一个元素添加到lst1中
print(lst1)  # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, [200, 300, 400, 500]]

lst1.extend(lst2)  # 将lst2中的每一个元素分别添加到lst1的末尾
print(lst1)  # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, [200, 300, 400, 500], 200, 300, 400, 500]

# 列表任意位置添加一个元素
lst3.insert(3, 800)  # 在lst3索引为3的地方上添加元素800
print(lst3)  # [600, 700, 900, 800]
# 在任意位置上添加N多个元素
lst4[2:] = lst3  # 在lst4索引为2的地方后面加上lst3,lst4原先在索引为2后面的数据被切掉了
print(lst4)  # [0, 1, 600, 700, 900, 800]

       4. 列表元素的删除

"""
列表的删除操作
"""
lst = [10, 20, 30, 40, 50, 80, 30]
lst1 = list([100, 101, 102, 103, 104, 105, 106])
lst.remove(30)  # 从列表中移除一个元素,如果有重复元素只移除重复元素中的第一个元素
print(lst)  # [10, 20, 40, 50, 80, 30]

lst1.pop(1)  # 移除lst1中索引为1的元素
print(lst1)  # [100, 102, 103, 104, 105, 106]

lst.pop()  # 如果不指定参数,会默认移除列表中的最后一个元素
print(lst)  # [10, 20, 40, 50, 80]

new_lst = lst[1:3]
print(new_lst)  # 这里只是产生了一个新的列表

lst[1:3] = []  # 如果不产生新列表去删除切片列表,可以将切片列表设为空列表
print(lst)  # [10, 50, 80]

lst.clear()  # 清除了列表中的全部元素
print(lst)  # []

del lst  # 将lst删除
print(lst)

      5.  列表元素的修改

  1.                 指定索引的元素赋予一个新值
  2.                 为指定的切片赋予一个新的值
"列表的修改操作"
lst = [10, 20, 30, 40, 50, 80, 70, 80]
# 一次修改一个值
lst[5] = 60
print(lst)  # [10, 20, 30, 40, 50, 60, 70, 80]
# 为指定的切片赋予一个新的值
lst[1:3] = [40, 30, 20, 0, 0]
print(lst)  # [10, 40, 30, 20, 0, 0, 40, 50, 60, 70, 80]

3.列表元素的排序

        常见的两种排序操作

  1.         调用sort()方式,列中有的所有元素默认按照从小到大的顺序进行排序(是对原列表进行排序),可以指定reverse=True,进行降序排序
  2.         调用内置函数sorted(),可以指定reverse=True,进行降序排序,(原列表不发生改变,会产生一个新的排序之后的列表)。
#  -----使用sort()函数在原列表上进行排序----
lst = [10, 50, 60, 20, 30, 40, 50, 80, 90, 70]
print('排序之前', lst)
lst.sort()  # 调用sort(),默认是在原列表的基础上升序排序
print('排序之后的列表', lst)
lst.sort(reverse=True)
print('降序排列的列表', lst)  # 通过参数reverse=True设置,使得降序排列,默认为reverse=False是升序排序
#  --------使用sorted()函数,会产生一个新的列表对象----------
lst = [10, 50, 60, 20, 30, 40, 50, 80, 90, 70]
print('排序之前', lst)
lst2 = sorted(lst)
print('排序后的原列表', lst)
print('排序后的新列表', lst2)
lst3 = sorted(lst, reverse=True)  # 通过参数reverse=True设置,使得降序排列
print('排序后的新列表', lst3)

4.列表生成式

        就是生成列表的公式

#  -----列表生成式----
lst = [i for i in range(1, 9)]
print(lst)  # [1, 2, 3, 4, 5, 6, 7, 8]
lst1 = [i**2 for i in range(1, 9)]
print(lst1)  # [1, 4, 9, 16, 25, 36, 49, 64]
lst2 = [i-2 for i in range(1, 9)]
print(lst2)  # [-1, 0, 1, 2, 3, 4, 5, 6]
'创建一个元素为2,4,6,8,10的列表'
lst = range(2, 12, 2)
lst1 = [2*i for i in range(1, 6)]
print(list(lst))  # [2, 4, 6, 8, 10]
print(lst1)  # [2, 4, 6, 8, 10]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>