是由一系列的按特定顺序排列的元素组成。
是python中内置的可变序列
在python中使用[]定义列表,元素与元素之间使用英文的逗号分隔
列表中的元素可以是任意的数据类型
(1)使用[]直接创建列表
语法结构如下:
列表名=[element1,element2,......,elementN]
(2)使用内置函数list()创建列表
语法结构如下:
列表名=list(序列)
语法结构如下:
del 列表名
示例:
#直接使用[]创建列表
lst=['hell','world',98,100.5]
print(lst)
#可以使用内置的函数list()创建列表
lst2=list('helloworld')
lst3=list(range(1,10,2)) #从1开始到10结束,步长为2,不包含10
print(lst2)
print(lst3)
#列表是序列的中的一种,对序列的操作符,运算符,函数均可使用
print(lst+lst2+lst3) #序列中的相加操作
print(lst3*3) #序列的相乘操作
print(len(lst))
print(max(lst3))
print(min(lst3))
print(lst2.count('o'))
print(lst2.index('o')) #o第一次出现的位置
#列表的删除操作
lst4=[10,20,30]
print(lst4)
#删除列表
del lst4
语法结构:
for index,item in enumerate(lst)
输出index和item
示例:
lst=['hello','world','python','php']
#使用遍历循环for遍历列表元素
for item in lst:
print(item)
#使用for循环,range()函数,len()函数,根据索引进行遍历
for i in range(0,len(lst)):
print(i,'---->',lst[i])
#第三种遍历方式enumerate()函数
for index,item in enumerate(lst):
print(index,item) #index是序号,不是索引
print('----------------------')
#手动修改序号的起始值
for index,item in enumerate(lst,start=2): #序号从2开始
print(index,item)
print('----------------------')
for index,item in enumerate(lst,7): #省略start不写,直接写起始值
print(index,item)
列表的方法 | 描述说明 |
---|---|
lst.append(x) | 在列表lst最后增加一个元素 |
lst.insert(index,x) | 在列表中第index位置增加一个元素 |
lst.clear() | 清除列表lst中所有元素 |
lst.pop(index) | 将列表lst中第index位置的元素取出,并从列表中将其删除 |
lst.remove(x) | 将列表lst中出现的第一个元素x删除 |
lst.reverse(x) | 将列表lst中的元素反转 |
lst.copy() | 拷贝列表lst中的所有元素,生成一个新的列表 |
lst.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
示例:
lst=['hello','world','python']
print('原列表:',lst,id(lst))
#增加元素的操作
lst.append('sql')
print('增加元素之后:',lst,id(lst)) #元素个数可变,但是内存地址不变,因此叫可变序列
#使用insert(index,x)在指定的index位置上插入元素x
lst.insert(1,100)
print(lst)
#列表元素的删除操作
lst.remove('world')
print('删除元素之后的列表:',lst,id(lst))
#使用pop(index)根据索引将元素取出,然后再删除
print(lst.pop(1))
print(lst)
#清除列表中所有的元素clear()
# lst.clear()
# print(lst,id(lst))
#列表的反向输出
lst.reverse() #不会产生新的列表,在原列表的基础上进行的
print(lst)
#列表的拷贝,将产生一个新的列表对象
new_lst=lst.copy()
print(lst,id(lst))
print(new_lst,id(new_lst))
#列表元素的修改操作
#根据索引进行修改元素
lst[1]='masql'
print(lst)
lst.sort(key=None,reverse=False)
key:表示排序的规则
reverse:表示排序方式(默认升序)
示例:
lst=[4,46,3,78,40,56,89]
print('原列表:',lst)
#排序,默认是升序
lst.sort() #排序是在原列表的基础上进行的,不会产生新的列表
print('升序:',lst)
#排序,降序
lst.sort(reverse=True)
print('降序:',lst)
print('---------------------------------')
lst2=['banana','apple','Cat','Orange']
print('原系列:',lst2)
#升序排列,先排大写,后排小写
lst2.sort()
print('升序:',lst2)
#降序排列,先排小写,后排大写
lst2.sort(reverse=True)
print('降序:',lst2)
#忽略大小写进行比较
lst2.sort(key=str.lower)
print(lst2)
sorted(iterable,key=None,reverse=False)
iterable:表示是的排序的对象
示例:
lst=[4,46,3,78,40,56,89]
print('原列表:',lst)
#排序
asc_lst=sorted(lst)
print('升序:',asc_lst)
print('原列表:',lst)
#降序
desc_lst=sorted(lst,reverse=True)
print('升序:',desc_lst)
print('原列表:',lst)
#排序之后原列表不变
lst2=['banana','apple','Cat','Orange']
print('原系列:',lst2)
#忽略大小写进行排序
new_lst2=sorted(lst2,key=str.lower)
print('原列表:',lst2)
print('排序后的列表:',new_lst2)
lst=[expression for item in range if condition]
示例:
import random
lst=[item for item in range(1,11)]
print(lst)
lst=[item*item for item in range(1,11)]
print(lst)
lst=[random.randint(1,100) for _ in range(10)]
print(lst)
#从列表中选择符合条件的元素组成新的列表
lst=[i for i in range(10) if i%2==0]
print(lst)
二维列表的遍历
for row in 二维列表:
for item in row:
pass
示例:
#创建二维列表
lst=[
['城市','环比','同比'],
['北京',102,103],
['上海',210,503],
['深圳',100,59]
]
print(lst)
#遍历二维列表使用双层for循环
for row in lst: #行
for item in row: #列
print(item,end='\t')
print() #换行
#列表生成式生产一个4行5列的二维列表
lst2=[[j for j in range(5)]for i in range(4)]
print(lst2)