列表
列表是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:2018 please input month(1-12):11 please input day(1-31):4 November 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:Tom please input age:29 True
列表的长度、最大最小值
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]=5 print(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 value 2
- 查询元素在列表中出现的次数
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 value 3
- 将列表中的元素反向存放,没有返回值(不改变列表的物理地址)
listr=[1,2,3,4,5,3,6,3] print("count():return number of occurrences of value 将列表中的元素反向存放但是不改变列表的物理地址") b=listr listr.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]