列表
列表是Python中内置的6个序列类型之一,也是非常常见的一个序列类型
列表的定义:
list_name[元素1,元素2,元素3...]
索引:
列表中的元素也叫做项,每一个元素(项)都有自己的索引,从左到右是从0开始依次增大,从右到左是从-1开始依次减小
例子:从键盘输入年、月、日,然后从控制台输出年月日的字符串
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]days = ["st", "nd", "rd"]+17*["th"]\ + ["st", "nd", "rd"]+7*["th"]\ + ["st"]input_year = input("please input year:")input_month = input("please input month(1-12):")input_day = input("please input day(1-31):")month_number = int(input_month)day_number = int(input_day)print_day = days[day_number-1]print_month = months[month_number - 1]print(print_month+" "+input_day+print_day+"."+input_year)
结果为:
please input year:2018please input month(1-12):11please input day(1-31):4November 4th.2018
分片:
通过索引可以查询列表中指定位置的元素,通过分片可以查看列表中指定索引范围的元素
list[index1:index2],左闭右开,index1<index2
例:
有列表list=[1,2,3,4,5]
- 输出所有元素
list1=[1,2,3,4,5]print("輸出所有元素")print(list1[:])print("輸出所有元素")print(list1[0:])print("輸出所有元素")print(list1[:5])print("輸出所有元素")print(list1[-5:])
结果
輸出所有元素[1, 2, 3, 4, 5]輸出所有元素[1, 2, 3, 4, 5]輸出所有元素[1, 2, 3, 4, 5]輸出所有元素[1, 2, 3, 4, 5]
- 指定输出哪个范围的元素
list1=[1,2,3,4,5]print("输出前三位")print(list1[:3])print("输出第1位到第3位")print(list1[1:4])
结果
输出前三位[1, 2, 3]输出第1位到第3位[2, 3, 4]
步长:
- 间隔2个步长输出list1中的元素
print("步长为2")print(list1[::2])print("步长为2")print(list1[0:5:2])print("步长为2")print(list1[::-2])
结果
步长为2[1, 3, 5]步长为2[1, 3, 5]步长为2[5, 3, 1]
步长为负数时,必须使索引开始大于索引结束,否则输出的为空;步长为负数且没有指定开始点和结束点,则从序列尾部开始获取元素
列表相加、相乘(列表和字符串不能相加)
print([1,2,3]+["a","b","c"])print(["Java","PHP"]*3)
结果
[1, 2, 3, 'a', 'b', 'c']['Java', 'PHP', 'Java', 'PHP', 'Java', 'PHP']
判断元素是否在列表中(in)
students=[["Tom",29], ["Jerry",22], ["Bon",18]]name_input=input("please input name:")age_input=int(input("please input age:"))if[name_input,age_input] in students: print(True)else: print(False)
结果:
please input name:Tomplease input age:29True
列表的长度、最大最小值
len()、max()、min()
max()、min()作用的列表中不能同时有int型和str型数据
列表的维护:
- 通过list()函数将字符串转换为列表,字符串中的字符成为列表中的元素
a="Alice2Bob"list1=list(a)print(list1[:])
结果
['A', 'l', 'i', 'c', 'e', '2', 'B', 'o', 'b']
- 更改指定位置的元素
list1=[1,2,3,"A",7]list1[3]=5print(list1[:])
结果
[1, 2, 3, 5, 7]
- 增加列表中的元素
list1=[1,2,3,"A",7]print("append():append object to end 末尾添加元素")list1.append(0)print(list1[:])print("extend():extend list by appending elements from the iterable 末尾添加列表当作元素")list1.extend(["w","c"])print(list1[:])print("insert():insert object before index 在指定索引之前的一位添加元素")list1.insert(3,4)print(list1[:])
结果:
append():append object to end 末尾添加元素[1, 2, 3, 'A', 7, 0]extend():extend list by appending elements from the iterable 末尾添加列表当作元素[1, 2, 3, 'A', 7, 0, 'w', 'c']insert():insert object before index 在指定索引之前的一位添加元素[1, 2, 3, 4, 'A', 7, 0, 'w', 'c']
- 删除列表中的元素
list1=[1,2,3,"A",7,2,5,"a"]print("remobe():remove first occurrence of value 删除第一次出现的指定的元素")list1.remove(2)print(list1)print("del:del 列表名[索引位置] 删除指定位置的元素")del list1[2]print(list1)print("pop():remove and return item at index (default last) 删除指定索引对应的元素并返回改元素(默认最后一个)")print(list1.pop())print(list1)
结果
remobe():remove first occurrence of value 删除第一次出现的指定的元素[1, 3, 'A', 7, 2, 5, 'a']del:del 列表名[索引位置] 删除指定位置的元素[1, 3, 7, 2, 5, 'a']pop():remove and return item at index (default last) 删除指定索引对应的元素并返回改元素(默认最后一个)a[1, 3, 7, 2, 5]
- 分片赋值的增删替换
listr=["a","b","c"]listr[2:3]=["v"]print(listr)listr[1:1]=["d"]print(listr)listr[2:3]=[]print(listr)
结果
['a', 'b', 'v']['a', 'd', 'b', 'v']['a', 'd', 'v']
- 查找元素在列表中的位置
listr=[1,2,3,4,5,3,6,3]print("index():return first index of value")print(listr.index(3))
结果
index():return first index of value2
- 查询元素在列表中出现的次数
listr=[1,2,3,4,5,3,6,3]print("count():return number of occurrences of value ")print(listr.count(3))
结果
index():return first index of value3
- 将列表中的元素反向存放,没有返回值(不改变列表的物理地址)
listr=[1,2,3,4,5,3,6,3]print("count():return number of occurrences of value 将列表中的元素反向存放但是不改变列表的物理地址")b=listrlistr.reverse()print(listr)print(b)
结果
count():return number of occurrences of value 将列表中的元素反向存放但是不改变列表的物理地址[3, 6, 3, 5, 4, 3, 2, 1][3, 6, 3, 5, 4, 3, 2, 1]