Python基础:列表List的操作

本文介绍了Python中的基本数据结构——序列和列表,详细阐述了如何创建、操作和管理列表,包括列表的索引、切片、增删改查、合并、排序和去重等操作,并给出了相关练习题以巩固学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 的序列和列表

序列是Python最基本的数据结构,序列都可以进行索引,切片,加,乘,检查成员的操作。

序列不仅支持通过位置来进行索引,Python还内置确定序列的长度以及确定最大和最小的元素的方法,非常方便。

Python有6个序列的内置类型,列表是其中的一个。语法为:方括号,包含的元素用逗号分隔,并且列表中的元素对数据类型及一致性都不做要求。

数字和字符串都可以形成列表,比如:

list1 = ["apple", "banana", 1, 2]
list2 = [1, 2, 3 ]

列表的创建

直接定义列表

# 创建列表

# 方式一
l=[1,2,3,4,5]
print (l)

# 方式二
[h,i,l,m,n]={1,2,3,4,5}
a=[h,i,l,m,n]
print ([h,i,l,m,n])
print (a)

运行结果为:

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

输入多个变量形成列表

比如输入多个数字:

# 将输入的数字形成列表

# 方式一 
a = input("please input:")
l = list(map(int, a.split(',')))
print(l)

# 方式二
l= list(map(int,input("please input:").split(',')))
print(l)

运行结果:

please input:1,2,3
[1, 2, 3]
please input:1,2,3
[1, 2, 3]

将区间范围的数字形成列表

使用函数示例:

# 将区间范围的数字形成列表

# 方法一:直接list创建
l= list(range(1,10))
print(l)

# 方法二:使用for循环
l=[]
for i in range(1,10):
    l.append(i)
print (l)

运行结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

列表元素操作

获取列表元素

Python列表索引从0开始,所以可以根据索引获取list中的任意单个或多个元素,并且进行组合。

# 获取列表中的元素
l=[1,2,3,4,5]
print (l[0])
print (l[-5])
print (l[3:])
print (l[:-1])

运行结果为:

1
1
[4, 5]
[1, 2, 3, 4]
[5, 4, 3, 2, 1]

删除列表元素

python支持多种方式删除列表的元素,比如删除指定索引位置的元素,指定内容的元素,列表尾部的元素,示例:

# 删除列表中指定索引的元素,索引可以是一个范围,也可以是固定
l=[1,2,3,4,5]
del l[0]
print (l)

# 删除列表中的尾部元素
l=[1,2,3,4,5]
l.pop()
print (l)

#删除列表中第一次出现的指定元素
l=[1,2,1,2,3]
l.remove(2)
print (l)

运行结果为:

[2, 3, 4, 5]

[1, 2, 3, 4]

[1, 1, 2, 3]

列表插入元素

插入元素可以通过两种方式。

  • 方式一:选中索引,可在索引位置插入元素,如果索引位置是一个范围,则起到替换元素的效果。
  • 方式二:使用l.append()和l.insert()函数,可分别实现在列表尾部和指定索引位置插入元素。
# 列表指定索引插入元素

#在索引位置l[2]插入元素
l=[1,2,3,4,5]
l[2:2]=[6]
print(l)

#在索引位置l[1:2]插入元素
l=[1,2,3,4,5]
l[1:2]=[6]
print(l)

# 尾部追加元素
l=[1,2,3,4,5]
l.append(6)
print (l)

# 在指定索引位置追加元素
l=[1,2,3,4,5]
l.insert(3,6)
print (l)

运行结果为:

[1, 2, 6, 3, 4, 5]

[1, 6, 3, 4, 5]

[1, 2, 3, 4, 5, 6]

[1, 2, 3, 6, 4, 5]

列表元素个数

python提供了两个函数,来统计列表的元素个数

  • len():用来统计元素总个数
  • l.count():用来统计指定元素的个数
# 统计列表中元素总个数
l=[1,2,3,4,5]
len(l)
print (len(l))

# 统计指定元素在列表中出现的个数
l=[1,2,1,1,3]
l.count(1)
print (l.count(1))

运行结果为:

5

3

列表的操作

列表的合并

可以使用运算符+合并,也可以使用l.extended()函数,可以达到同样的列表合并效果。

l1=[1,2,3]
l2=[4,5,6]
print (l1+l2)

l1=[1,2,3]
l2=[4,5,6]
l1.extend(l2)
print (l1)

运行结果为:

[1, 2, 3, 4, 5, 6]

[1, 2, 3, 4, 5, 6]

列表的减法

# 方法一
list1=[1,2,3,4,5]
list2=[1,2,3]
list3=list(set(list1)-set(list2))
print (list3)

# 方法二
list1=[1,2,3,4,5]
list2=[1,2,3]
list3 = [i for i in list1 if i not in list2]
print (list3)

运行结果为:

[4, 5]

[4, 5]

列表的排序

python提供了函数支持列表中元素的排序

  • l.reverse():列表元素倒序
  • l.sort():列表中元素从小到大排序
# list倒序
l=[1,2,3,4,5]
l.reverse()
print (l)

# list从小到大排序
l=[1,2,1,1,3]
l.sort()
print (l)

运行结果为:

[5, 4, 3, 2, 1]

[1, 1, 1, 2, 3]

列表的去重

需要注意set(l)使用后,列表会丢失,所以需要使用list再转换回列表,见示例:

# list去重
l=[1,2,1,1,3]
set(l)
print (set(l))
print (list(set(l)))

运行结果为:

{1, 2, 3}
[1, 2, 3]

列表常用函数

常用的列表函数归类如下:

函数作用
l.append(var)在列表尾部增加元素
l.insert(index,var)在列表指定索引位置增加元素
l.pop(var)返回最后一个元素,并从list中删除之
l.remove(var)删除第一次出现的该元素
l.count(var)该元素在列表中出现的个数
l.index(var)查找该元素的位置,无则抛异常
l.extend(l2)追加list,即合并l2到l上
l.sort()列表元素从小到大排序
l.reverse()列表元素倒序
del l[1:3]删除指定下标索引范围的元素
set(l)列表去重

 这里有几道常见练习题可以巩固下。

题目一:列表的拷贝

将一个列表的数据复制到另一个列表中。

list1=[1,2,3,4,5]
list2=list1
list3=list1[:]
print (list2)
print (list3)

题目二:列表元素的输出

输出列表的元素,并且每个之间间隔1秒

import time
l=[1,2,3]
for i in l:
    print (i)
    time.sleep(2)

题目三:列表的创建

判断3-50之间有多少个素数,并输出所有素数。素数的定义:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

方法一:判断是素数则跳过,不是素数则形成列表,统计个数

l = []
n=0
for i in range(3,50):
    #判断如果是素数,则打印,如果不是素数就跳过
    for j in range(2,i):
        if i % j == 0:
            break
    else:
        n+=1
        l.append(i)
print(l)
print (n)

方法二:将原数据生成列表m,判断是素数则形成列表l,两个列表的元素个数相减,就是素数的个数

l = []
m=[]
n=0
for i in range(3,50):
    m.append(i)
    #判断如果x是素数,则打印,如果不是素数就跳过
    for j in range(2,i):
        if i % j == 0 and i not in l:
            l.append(i)

print (len(m)-len(l))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值