1、 列表的定义和基本使用
列表是python中的一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的
列表list ,定义使用[]进行定义
list1 = []
print(list1, type(list1))
list1 = list()
print(list1, type(list1))
# 定义带数据的列表,数据元素之间使用都好隔开
list2 = [1, 2.345, False, 'Python']
print(list2, type(list2))
# 求列表中数据元素的个数,即列表的长度
num = len(list2)
print(num)
# 列表支持下标和切片操作
print(list2[1])
print(list2[-1])
print(list2[1:3])
# 下标操作和字符串中不同的是:字符串不能使用下标修改其中的数据,但是列表可以使用下标修改列表中的数据
list2[0] = 12
print(list2)
list2[-1] = 'java'
print(list2)
2、遍历
list1 = ['张飞', '赵云', '刘备', '关羽']
for i in list1: # i表示的就是列表中的每一个数据
print(i)
print('`' * 40)
j = 0 # j表示下标
while j < len(list1):
print(list1[j])
j += 1
3、向列表中添加数据
# 向列表中添加数据的方法,都是直接在原列表中进行添加的,不会返回新的列表
list1 = ['张飞', '赵云', '刘备', '关羽']
print(list1)
# 列表. append(数据)向列表的尾部追加数据
list1.append('cc')
print(list1)
result = list1.append(11) # 不要这样书写
# print( result) # None关键字,表示空
print(list1)
# 列表.insert(下标,数据)在指定的下标位置进行添加数据
list1.insert(5, 'Python')
print(list1)
# print(list1.insert(2,4.14))不能这样书写,None
# 列表.extend(可迭代对象) # str列表,会将可迭代对象中的数据逐个添加到原列表的末尾
list1.extend('java')
print(list1)
list1.extend([1, 'python', 'java'])
print(list1)
4、列表中的数据查询操作
list2 = [1, 2.345, False, 'Python']
# index( )根据数据值,查找元素所在的下标,找到返回元素的下标,没有找到,程序报错
# 列表中没有find方法,只有index()方法
# 查找2.345在列表中下标
num = list2.index(2.345) # 1
print(num)
# num1 = my_list.index(100) # 程序报错,因为数据不存在
# count()统计出现的次数
num3 = list2.count(1) # 1
print(num3)
# in /not in判断是否存在,存在是True,不存在是False,一般和if结合使用
num4 = 2.345 in list2 # True
print(num4)
num4 = 2.345 not in list2 # False
print(num4)
5、列表中的删除操作
list1 = [1, 2, 5, 8, 9, 10]
# 1.根据元素的数据值删除remove(数据值),直接原列表中的数据
list1.remove(5)
print(list1) # [1,2,8,9,10]
# list1.remove(4)程序报错,要删除的数据不存在
# 2.根据下标删除
# 2.1 pop(下标)默认删除最后一个数据,返回删除的内容
num = list1.pop() # 删除最后一个数据10
print(num)
print(list1) # [1,2,8,9]
num = list1.pop(2) # 删除下标为2的数据即8
print(num)
print(list1) # [1,2,9]
# list1.pop(5) # 删除的下标不存在,会报错
# 2.2 del_列表[下标]
del list1[1] # 删除下标为1的数据2
print(list1)
# del list1[10] # 删除不存在的下标,会报错
6、列表排序和逆置
# 想要对列表中的数据进行排序,前提是列表中的数据类型是一样的
list1 = [1, 11, 5, 8, 3, 10]
list0 = [1, 11, 5, 8, 3, 10]
# 列表.sort()直接在原列表中进行排序
list1.sort() # 默认是从小到大排序,即升序
print(list1) # [1, 3, 5, 8, 10, 11]
# list1.sort(reverse=True) # 通过reverse=True,从大到小排序
list1.sort(reverse=True) # 默认是从小到大排序,即升序
print(list1) # [11, 10, 8, 5, 3, 1]
# 补充: sorted(列表)排序,不会在原列表中进行排序,会得到一个新的列表
list2 = sorted(list0)
list3 = sorted(list0, reverse=True)
print(list0) # [1, 11, 5, 8, 3, 10]
print(list2) # [1, 3, 5, 8, 10, 11]
print(list3) # [11, 10, 8, 5, 3, 1]
print("~" * 30)
list4 = ['a', 'b', 'c', 'd', 'e ']
list5 = ['a', 'b', 'c', 'd', 'e ']
# 逆置
list6 = list4[::-1] # 得到一个新的列表
print(list4) # ['a', 'b', 'c', 'd', 'e ']
print(list6) # ['e ', 'd', 'c', 'b', 'a']
# 在原列表直接逆置列表.reverse( )
list5.reverse()
print(list5) # ['e ', 'd', 'c', 'b', 'a']
7、列表嵌套
school_names = [['清华大学', '北京大学'],
['北京理工大学', '天津大学', '大连理工大学'],
['东北大学', '哈尔滨工程大学']]
print(school_names[1]) # ['北京理工大学','天津大学','大连理工大学']
print(school_names[1][1]) # 天津大学
print(school_names[1][1][1]) # 津
print(school_names[2][0]) # 东北大学
for schools in school_names:
# print(schools) # 列表
for name in schools:
print(name)