python之list基础相关

python之list基础相关

"""
列表:存在所有类型的数据,可以存放不同类型的数据
可通过下标访问。下标从0开始

"""

列表的创建

list_1 = [1,2,3,"4"]
list_2 = list()

遍历

for i in list_1:
    print(i, end=" ")
print(" ")

根据下标获取列表数据

value = list_1[-1]
#print("最后一个元素: %s" %(value))

切片

list_2 = list_1[:3]
#print("第1到第3个元素: %s" %(list_2))

list_2.clear()
list_2 = list_1[1:3]
#print("第2到第3个元素: %s" %(list_2))

list_2.clear()
list_2 = list_1[::2]
#print("根据跨度为2的元素: %s" %(list_2))

list_2.clear()
list_2 = list_1[::-1]
#print("列表反转: %s" %(list_2))

方法:增加

list_1.clear()
#print("列表添加元素前,值为: %s" %(list_1))
list_1.append(5)
list_1.append(6)
#print("使用append添加元素后,值为: %s" %(list_1))

list_1.clear()
list_2=[7,8,9]
#print("列表添加元素前,值为: %s" %(list_1))
list_1.extend(list_2) # 等价于 list_1.extend([7,8,9])
#print("使用extend添加元素后,值为: %s" %(list_1))

# 切片添加
list_1=[1,2,3]
#print("列表添加元素前,值为: %s" %(list_1))
list_1[-1:] = [4,5] # 等价于 list_1[len(list_1):] = [4,5]
#print("使用切片添加元素后,值为: %s" %(list_1))

list_1=[1,2,3]
#print("列表插入元素前,值为: %s" %(list_1))
list_1.insert(1,4) # 在指定位置插入元素
#print("在第二个位置插入元素4后,值为: %s" %(list_1))

方法:删除

list_1=[1,2,3,4,5,6,4,6,3,4]
#print("列表删除元素前,值为: %s" %(list_1))
list_1.remove(4)  # 删除第一个出现的元素,删除的元素不存在则会报错
#print("列表使用remove删除元素4后,值为: %s" %(list_1))

list_1=[4,1,2,3]
#print("列表删除元素前,值为: %s" %(list_1))
list_1.pop(0) # 删除指定位置的元素,0表示待删除元素的下标
#print("列表使用pop删除第一个元素后,值为: %s" %(list_1))

list_1=[1,2,3]
#print("清空列表元素前,值为: %s" %(list_1))
list_1.clear() #清空列表元素
#print("清空列表元素后,值为: %s" %(list_1))

替换

list_1= [1,2,3,4]
#print("替换列表元素前,值为: %s" %(list_1))
list_1[2:] = [2,4,4,4]
#print("替换列表中第3个元素以后的所有元素后,值为: %s" %(list_1))

排序

list_1= [4,2,1,8,4]
#print("排序前列表元素,值为: %s" %(list_1))
list_1.sort()
#print("使用sort()排序后列表元素,值为: %s" %(list_1))

反转

list_1= [1,2,3,4]
#print("反转前列表元素,值为: %s" %(list_1))
list_1.reverse()  # 等价于 list_1[::-1] 
#print("反转后列表元素,值为: %s" %(list_1))

查找元素出现的次数

list_1= [1,2,3,4,3,4,5,3]
#print("列表元素,值为: %s" %(list_1))
#print("列表元素4出现的次数,值为: %d" %(list_1.count(4)))

查找元素的索引值

list_1= [1,2,3,4,3,4,5,3]
#print("列表元素,值为: %s" %(list_1))
#print("列表元素4第一次出现的索引,值为: %d" %(list_1.index(4)))

列表运算符(+:两个列表拼接;*n:列表元素重复n次)

s=[1,2]
t=[3,4]
#print("列表S元素,值为: %s" %(s))
#print("列表t元素,值为: %s" %(t))
#print("使用 s+t 拼接后值为:%s" %(s+t))
#print("使用 s*3 将列表s中元素重复3次后值为:%s" %(s*3))

复制(浅拷贝)==>不是拷贝引用

list_1 = [1,2,3,4]
#print("列表list_1元素,值为: %s" %(list_1))
list_1_copy = list_1.copy() # 等价于 list_1_copy1 = list_1[:]
#print("浅拷贝后列表元素,值为: %s" %(list_1_copy))

复制(深拷贝)==>拷贝引用,重新分配一个内存空间

import copy
x=[[1,2,3],[4,5,6],[7,8,9]]
#print("列表x元素,值为: %s" %(x))
y = copy.deepcopy(x) 
#print("深拷贝后列表y元素,值为: %s" %(y))
x[1][1] = 4
#print("修改源列表x[1][1]元素后,值为: %s" %(x)) # 深拷贝后源列表与拷贝后列表值的对比
#print("列表y元素,值为: %s" %(y))

二维列表创建

A=[0]*3
for i in range(3):
    A[i] = [0]*3
#print("使用普通for 循环创建的二维列表: %s" %(A))
A = [[0]*3 for i in range(3)]
#print("使用列表推导式创建的二维列表: %s" %(A))
A[1][1] = 2
#print("对列表推导式创建的二维列表,修改A[1][1]元素值后,列表: %s" %(A))

列表推导式

x = [1,2,3,4,5]
#print("源列表: %s" %(x))
x = [i*2 for i in x]
#print("对源列表中所有元素乘以2后: %s" %(x))

X = [i for i in range(0,10) if i%2==0]
#print("使用列表推导式得到10以内的偶数列表: %s" %(X))