python基础入门之列表
导语
- 在存储数据中,字符串好比是一维,那么列表就是二维,这样就可以储存多个数据,数据一多,大佬们在开发语言的时候就为了装杯,给列表增加了:增、删、改、查。当然我也是吹牛逼的,不管是传统C语言,还是新开发的语言,在数据处理中都有这几个操作,特别是在数据库中,所以并不是列表特有的属性。
列表
- [数据1, 数据2, 数据3, 数据4…],中括号里面的数据用逗号分割,一般用变量接收,名字自取。
name_list = ['Tom', 'Lily', 'Rose']
增
name_list = ['Tom', 'Lily', 'Rose']
name_list.append('erdan')
print(name_list)
# ['Tom', 'Lily', 'Rose', 'erdan']
# 我们打印原列表发现数据发生了变化,说明列表是可变类型。
name_list = ['Tom', 'Lily', 'Rose']
name_list.append(['二蛋', '郭二蛋'])
print(name_list)
# ['Tom', 'Lily', 'Rose', ['二蛋', '郭二蛋']]
# append只认定它括号里是一个数据,就算是108将,他们也只能打包成一个。
- 列表名.extend(数据):列表结尾追加数据,如果数据是?个序列,则将这个序列的数据逐?添加到列表。
name_list = ['Tom', 'Lily', 'Rose']
name_list.extend('erdan')
print(name_list)
# ['Tom', 'Lily', 'Rose', 'e', 'r', 'd', 'a', 'n']
# 可以理解成字符串是由单个字符组成的序列
name_list = ['Tom', 'Lily', 'Rose']
name_list.extend(['二蛋', '郭二蛋'])
print(name_list)
# ['Tom', 'Lily', 'Rose', '二蛋', '郭二蛋']
# 所以列表里的组成元素是根据逗号判断的。
- 列表名.insert(位置下标, 数据):指定位置新增数据。PS:数据下标都是从0开始的。
name_list = ['Tom', 'Lily', 'Rose']
name_list.insert(2,'erdan')
print(name_list)
# ['Tom', 'Lily', 'erdan', 'Rose']
删
- del 列表名:直接从内存中删除该列表,就是直接抹杀,毛都不剩。
name_list = ['Tom', 'Lily', 'Rose']
del name_list
print(name_list)
# 报错,该列表没有定义,都找不到了,还打印,逗电脑玩呢!一般是删档跑路的才会这么干。
name_list = ['Tom', 'Lily', 'Rose']
del name_list[0]
print(name_list)
# ['Lily', 'Rose']
# 通常是加上下标,删除指定数据
- 列表名.pop(下标):可以用变量接收删除的数据,因为列表是可变类型,所以原列表会发生改变。
name_list = ['Tom', 'Lily', 'Rose']
del_name = name_list.pop(1)
print(del_name)
# Lily,提取出来的是数据本身的类型,列表里Lily是字符串那么它就是字符串类型。
print(name_list)
# ['Tom', 'Rose']
- 列表名.remove(数据):删除指定数据的第?个匹配项,数据太长的话一般用这个,不用去找数据位置。
name_list = ['Tom', 'Lily', 'Rose','Tom']
name_list.remove('Tom')
print(name_list)
# ['Lily', 'Rose', 'Tom']
# 不是变换位置,兄弟们,只是删除了它找到的第一个匹配的数据
列表名.clear():清空列表,跟del不同,只是清空不是把整个都抹杀,就是剩一个空壳。
改
name_list = ['Tom', 'Lily', 'Rose']
name_list[0] = 'erdan'
print(name_list)
# ['erdan', 'Lily', 'Rose']
# 因为可变,可以直接通过下标位置替换
- 列表名.reverse():逆置,把数据倒置过来,学会就可以直接逆序排列,当然要求数据本来就是顺序的。
num_list = [1, 2, 3, 4, 5]
num_list.reverse()
print(num_list)
# [5, 4, 3, 2, 1]
- 列表名.sort( key=None, reverse=False):reverse = True 降序, reverse = False 升序(默认)。
num_list = [1, 5, 2, 3, 6, 8]
num_list.sort()
print(num_list)
# [1, 2, 3, 5, 6, 8]
num_list.reverse() # 等于num_list.sort( reverse=True),要灵活一点是吧。
print(num_list)
# [8, 6, 5, 3, 2, 1]
- 列表名.copy():复制,可以自己看一下复制后列表的内存地址,虽然数据一样,但是地址不一样的,这一点要记住,后面有知识点要用的。
查
name_list = ['Tom', 'Lily', 'Rose']
print(name_list[0])
# Tom
name_lists = [['张三', '李四', '王五'], ['Tom', 'Lily', 'Rose'], ['二蛋', '郭二蛋', '郭郭二蛋']]
print(name_lists[2][1])
# 郭二蛋
# 列表里有子列表就是列表嵌套,可以理解成单个子列表是主列表里的一个数据
- 列表名.index(数据, 开始位置下标, 结束位置下标):返回指定数据所在位置的下标 ,如果查找的数据不存在则报错。PS:不写下标,默认整个序列。
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Lily', 0, 2))
# 1
print(name_list.index('Lily'))
# 1
- count():统计指定数据在当前列表中出现的次数。
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Lily'))
# 1
name_list = ['Tom', 'Lily', 'Rose']
print(len(name_list))
# 3
- in:判断指定数据在某个列表序列,如果在返回True,否则返回False。
name_list = ['Tom', 'Lily', 'Rose']
print('Lily' in name_list)
# True
print('erdan' in name_list)
# False
- not in:跟in相反。当返回值是布尔类型的时候我们通常可以用做条件判断语句。
|