列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查。
1、查找
(1)通过下标查找
我们可以通过索引(index)来获取列表中的元素。
索引是元素在列表中的位置,列表中的每一个元素都有一个索引,索引是从0开始的整数,列表第一个位置索引为0,第二个位置索引为1,第三个位置索引为2,以此类推。
name_list = ['Tom', 'Lily', 'Rose']
print(name_list[0]) # Tom
print(name_list[1]) # Lily
print(name_list[2]) # Rose
# 如果使用的索引超过了最大的范围,会抛出异常。
# IndexError: list index out of range
print(name_list[3]) # 异常
提示:列表的下标(索引)和字符串下标(索引)的用用法是一样的。包括正负取值,可以参考着字符串一起学习,这里不在通过列表在说明了。
(2)通过方法查找
@1.index( )
方法
index( )
方法:返回指定数据所在位置的下标 。
(用法同字符串中index( )
方法的用法一样)
语法
列表序列.index(数据, 开始位置下标, 结束位置下标)
快速体验
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Lily', 0, 2)) # 1
注意:如果查找的数据不存在则报错。
@2.count( )
方法
count( )
方法:统计指定数据在当前列表中出现的次数。
(用法同字符串中count( )
方法的用法一样)
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Lily')) # 1
@3.len( )
方法
len( )
方法:获取列表的长度,即列表中元素的个数。(是一个通用方法)
name_list = ['Tom', 'Lily', 'Rose']
name_list_len = len(name_list)
print(name_list_len) # 3
注意: 获取到的长度的值,是列表的最大索引 + 1。所以以后在用到列表的最大索引的时候,使用
len( )-1
。
(3)判断是否存在
这两个方法都是公共方法,代表列表,元祖,字典,字符串都支持的操作。
in
关键字
in
:判断指定数据是否存在于列表中,如果在返回True,否则返回False
name_list = ['Tom', 'Lily', 'Rose']
# 结果:True
result = 'Lily' in name_list
print(result)
# 结果:False
result1 = 'Lilys' in name_list
print(result1)
not in
关键字
not in
:判断指定数据是否不在某个列表序列,如果不在返回True,否则返回False
name_list = ['Tom', 'Lily', 'Rose']
# 结果:False
result = 'Lily' not in name_list
print(result)
# 结果:True
result1 = 'Lilys' not in name_list
print(result1)
体验案例
需求:判断用户输入的名字是否已经存在,如果存在,提示用户已存在,否则提示可以注册。
name_list = ['Tom', 'Lily', 'Rose']
name = input('请输入您要搜索的名字:')
if name in name_list:
print(f'您输入的名字是{name}, 名字已经存在')
else:
print(f'您输入的名字是{name}, 名字不存在')
2、增加
作用:增加指定数据到列表中。
@1.append( )
方法
append( )
方法:向列表的结尾添加一个元素。
语法
列表序列.append(数据)
体验
"""
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', 'Lily', 'Rose', '孙悟空']
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list.append('孙悟空')
print("修改后:", name_list)
注意一点,列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。
追加一个序列
如果append( )
方法追加的数据是一个序列,则追加整个序列到列表的结尾。
"""
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', 'Lily', 'Rose', ['孙悟空', '猪八戒']]
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list.append(['孙悟空','猪八戒'])
print("修改后:", name_list)
@2.extend( )
方法
extend( )
方法:列表结尾追加数据,数据一定是一个序列,则把数据序列里面的数据拆,开然后逐一追加到列表的结尾。
语法
列表序列.extend(数据)
快速体验
name_list = ['Tom', 'Lily', 'Rose']
"""
1、单个数据
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', 'Lily', 'Rose', '孙', '悟', '空']
"""
print("修改前:", name_list)
name_list.extend('孙悟空')
print("修改后:", name_list)
"""
2、序列数据
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', 'Lily', 'Rose', '孙悟空', '猪八戒']
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list.extend(['孙悟空','猪八戒'])
print("修改后:", name_list)
"""
3、extend()方法和+=的效果是一样的
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', 'Lily', 'Rose', '孙悟空', '猪八戒']
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list += (['孙悟空','猪八戒'])
print("修改后:", name_list)
"""
4、传入非序列数据
输出结果:
异常:
TypeError: 'int' object is not iterable
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list.extend(123)
print("修改后:", name_list)
@3.insert( )
方法
insert( )
方法:向列表的指定位置插入一个元素。
语法
列表序列.insert(位置下标, 数据)
快速体验
"""
输出结果:
修改前: ['Tom', 'Lily', 'Rose']
修改后: ['Tom', '孙悟空', 'Lily', 'Rose']
"""
name_list = ['Tom', 'Lily', 'Rose']
print("修改前:", name_list)
name_list.insert(1, '孙悟空')
print("修改后:", name_list)