python入门语法 -- 列表使用方法


🍁本次博客主要总结以下python中,列表的主要操作,便于构成知识网络体系。

列表定义

🍁Python列表是一种有序的和可更改的集合数据类型,列表中允许存在重复的成员, 其中的元素可以是任意类型,包括整数、浮点数、字符串以及其他对象。列表使用方括号 [] 表示,元素之间用逗号分隔。可以通过索引位置访问和修改列表中的元素。列表支持各种操加粗样式作,例如添加元素、删除元素、拼接列表、排序等。

列表创建

空列表

方式1:
使用方括号[]创建

b = []
print(type(b))     # 查看类型 <class 'list'>
print(b)			# []

方式2:
使用list(),进行创建

c = list()
print(type(c))      # 查看类型 <class 'list'>		
print(c)			# []

非空列表

  1. 在[]中设置初始值,如:
list1 = [1, 2, 3, 4]
print(type(list1))     # <class 'list'>	
print(list1)   	# [1, 2, 3, 4]
  1. 可以一次性存储多个数据,且可以为不同数据类型,如:
list1 = ["张三", "李四", "王五", "赵六", "1234", 1, [1, 2, 3], {1}, (1, 2)]
print(type(list1))     # <class 'list'>	
print(list1)     # ["张三", "李四", "王五", "赵六", "1234", 1, [1, 2, 3], {1}, (1, 2)]

列表的常用操作

列表可以存储多个数据,我们可以对这些数据进行,增、删、改、查。

增加数据

增加指定数据到列表中,主要有下面三种方法,如:

🍂1. append()方法:列表结尾追加数据,使用的频率比较多
🍂使用方法:列表序列.append(添加的数据)

list1 = [1, 2, 3, 4]
list1.append(5)
print(list1)     # [1, 2, 3, 4, 5]

如果append()追加的数据是⼀个序列,则追加整个序列到列表,比如:

list1 = ["张三", "李四", "王五", "赵六"]
list2 = ["左轮", "篮球", "两年半"]
list1.append(list2)
print(list1)      # ['张三', '李四', '王五', '赵六', ['左轮', '篮球', '两年半']]

🪶2. extend () 方法 : 列表结尾追加数据,如果extend()添加的数据是一个序列,则将这个序列数据逐一添加到列表
🪶使用方法:列表序列.extend(数据)

li1 = ["张三", "李四", "王五", "赵六"]
li2 = ["左轮", "篮球", "两年半"]
li1.extend(li2)
print(li1)           # ['张三', '李四', '王五', '赵六', '左轮', '篮球', '两年半']

🍁3. insert () 方法:指定位置新增数据。
🍁使用方法:列表序列.insert(位置下标, 数据)

li3 = ["张三", "李四", "王五", "赵六"]
li3.insert(1, "关羽")
print(li3)     # ["张三", "关羽", "李四", "王五", "赵六"]

注:列表是可变的类型 – 修改之后,内存地址不变

list3 = ["张三", "李四", "王五", "赵六"]
print(id(list3))        # 内存地址一样   # 2532698568000
list3.append("坤哥")
print(id(list3))        # 内存地址一样	# 2532698568000

删除数据

删除列表当中的数据,主要有以下几种方法,如:

🎊1. del方法:
a 、删除整个列表

li1 = ["张三", "李四", "王五", "赵六"]
del li1
print(li1)              # 删除整个列表后,打印会报异常

b、删除指定数据(根据索引删除)

li1 = ["张三", "李四", "王五", "赵六"]
del li1[1]             # 删除指定数据
print(li1)				# ["张三", "王五", "赵六"]

说明:这里索引也叫下标,如果不知道,什么是索引的话,可以看我上一篇博客字符串操作其中与字符串不同的是,列表的一个数据,可以是数值,字符串,列表,字典,元组,集合等。

2. pop () : 空号()内可以,填入列表的索引
删除指定下标的数据(默认为最后⼀个),并返回该数据。

li2 = ["张三", "李四", "王五", "赵六"]
li2.pop()       # ()未填入值,默认删除是最后一个
li2.pop(0)      # 删除第一个
print(li2)      # ['李四', '王五']

🍁3. remove()方法 : 移除列表中某个数据的第⼀个匹配项。
🍁使用方法:列表序列.remove(要删除的数据)

li3 = ["张三", "李四", "王五", "赵六", "王五"]
li3.remove("王五")     # 只会删除第一个王五
print(li3)             # ['张三', '李四', '赵六', '王五']

如果要删除所有的,相同数据,我们可以通过使用循环,比如:
方法1:

li3 = ["张三", "李四", "王五", "赵六", "王五"]
for i in range(li3.count("王五")):  # 通过count函数,统计“王五”的次数,有几个就循环几次
    li3.remove("王五")				# 每次循环删除王五
print(li3)    							# ['张三', '李四', '赵六']

方法2:第一种的优化,加入输入数据,和判断输入的数据是否在列表中,实现自定义删除。

li3 = ["张三", "李四", "王五", "赵六", "王五"]
name = input("请输入你要删除的名字:")
if name in li3:
    for i in range(li3.count(name)):
        li3.remove(name)
    print(li3)
else:
    print(f"{name}--不在列表当中")

🍂4. clear(): 清空列表

li4 = ["张三", "李四", "王五", "赵六", "王五"]
li4.clear()      # 清空列表
print(li4)       # 打印空列表  []

修改数据

修改列表当中的数据,主要有以下几种方法,如:

🍧1. 修改指定下标的数据

li1 = ["张三", "李四", "王五", "赵六", "王五"]
li1[0] = "小宋"
print(li1)               # ['小宋', '李四', '王五', '赵六', '王五']

🍧2. reverse(): 逆置,将列表中的元素,进行反转
🍧使用方法:列表序列.reverse()

li2 = [1, 3, 5, 2, 4, 6]
li2.reverse()
print(li2)             # [6, 4, 2, 5, 3, 1]

🍧3. sort(): 排序
🍧reverse表示排序规则,reverse=True降序,reverse=False升序(默认)
🍧使用方法:列表序列.sort(reverse=False)

li3 = [1, 8, 9, 2, 4, 6]
li3.sort()    # 不写默认升序
print(li3)                # [1, 2, 4, 6, 8, 9]
li3.sort(reverse=True)   # reverse=True降序
print(li3) 				 # [9, 8, 6, 4, 2, 1]
li3.sort(reverse=False)  # reverse=False升序
print(li3)				 # [1, 2, 4, 6, 8, 9]

🪶4. copy()复制:复制一个列表
使用方法:要复制的列表.copy()

li4 = [1, 2, 5, 89, 34, 3]
print(li4)                         #  [1, 2, 5, 89, 34, 3]
new_li4 = li4.copy()
print(new_li4)                     # [1, 2, 5, 89, 34, 3]

查找数据

查找列表当中的数据,主要包括了下面几种方法,如:

1. 根据下标查找

通过下标访问操作符[]可以获取指定下标位置的元素。比如:

list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2[1])           # 李四

2. index(): 查找某个数据是否存在列表中,如果存在,返回指定数据所在位置的下标
✨使用方法:列表序列.index(数据, 开始位置下标, 结束位置下标)

list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2.index("李四", 0, 4))        # 1

注:在使用index时,开始位置下标,结束位置下标位置是可以省略的,其次,如果查找的数据不存在,将会报异常。

list2 = [1, 2, 3, 4, 5]
print(list2.index(2))        # 1
print(list2.index(10)      # 不存在,报异常

3. count():统计指定数据在当前列表中出现的次数。

list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2.count("李四"))          # 2

4. len ():计算访问列表⻓度,即列表中数据的个数。

list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(len(list2))           # 5

5. in与not in用法
in:判断指定数据在某个列表序列,如果在返回True,否则返回False

list2 = ["张三", "李四", "李四", "赵六", "123456"]
if "张三" in list2:
    print("张三在里面")

not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False

if "王五" not in list2:
    print("王五打球去了")

列表的循环遍历

for循环

  1. 依次打印列表中的各个数据
li1 = [1, 2, 3, 4, 5]       
for data in li1:  # 遍历列表
    print(data)
  1. 使用遍历下标的方式,依次打印列表中的各个数据
li1 = [1, 2, 3, 4, 5]
for data in range(len(li1)):  # 遍历下标
    print(li1[data])          # 通过下标方式打印数据
  1. 将列表中遍历出来的数据,都加一个姓名:
li1 = ["张三", "李四", "王五", "赵六", "王五"]
li2 = []    # 定义空列表
for data in li1:  # 遍历列表
    print(data)
    var = "姓名:" + str(data)   # 将列表中遍历出来的数据,都加一个姓名:
    li2.append(var)
print(li2)      # ['姓名:张三', '姓名:李四', '姓名:王五', '姓名:赵六', '姓名:王五']

补充:也可以使用zip方法
zip接收多个可迭代对象参数,在返回一个迭代器,可以把不同可迭代对象的元素组合起来。
但是,合并对象元素数量要一致

li1 = ["姓名:", "姓名:", "姓名:", "姓名:", "姓名:"]
li2 = ["张三", "李四", "王五", "赵六", "王五"]
li3 = list(zip(li1, li2))
print(li3)

while循环

说明:这里通过len获取列表元素的个数
依次打印列表中的各个数据

li1 = ["张三", "李四", "王五", "赵六", "王五"]
i = 0
while i < len(li1):   # 通过列表长度,判断循环的次数
    print(li1[i])     # 依次输出列表对应下标的值
    i += 1

列表的嵌套

列表里面嵌套列表,需要先拿出需要值所在的列表,在拿需要的值

name_list = [['张三', '李四', '阿坤'], ['唱', '跳', '篮球'], ['甲', '乙', '丙']]
print(name_list[1][2])    # 篮球
print(name_list[0][2])    # 阿坤
print(name_list[2][1])    # 乙

拼接列表

使用 + 号拼接

li4 = [1, 2, 5, 89, 34, 3]
li5 = ["a", "b", "c"]
print(li4 + li5)     # [1, 2, 5, 89, 34, 3, "a", "b", "c"]

欢迎小伙伴们参考借阅,希望对小伙伴们有一定的帮助
如果觉得不错,请一键三连支持一下博主~~~~

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒-洋洋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值