python基础大全--list

list 列表

数据结构:组织并存取数据
list:有序的集合,列表 ,是一种数据结构
创建方式
取值方式

1.申明方式

list1 = ['a',2,3,[1,2,3,4,[1,2,3]],'abcde']

2.将字符串转化为列表

list2 = list("a,b")
print(list2)

3.下标取值,下标取首不取尾,与数组相似取值方式

print(list1[3][4][1])
print(list1[0:3])

4.最后一个元素取法

print(list1[-1])
print(list1[len(list1)-1])    #列表不能为空

5.使用的len语句是计算的该列表中有多少个元素

print(len(list1[3]))

6.元素更改

print(list1[1])
list1[1] = "b" #元素修改
print(list1[1])
list1.append('f') #尾部增加元素 其内置函数中没有return 所以print(list1.append())返回值为none
list1.insert(1,'b') #在下标1处添加元素 返回值为none
print(list1.insert(1,'3'))
x = list1.pop(1) #删除下标所在位置的元素,若无下标,则将尾部元素删除,返回值为删除的元素
list1.remove('a') #找到该元素并移除 返回为none
range(start_num,end_num,间隔):有序的一组数字
list2 = [1,'hello', 'world','c','d',[1,2,3,[1,2],5]]   #打印输出列表所有元素
for i in list2: #for循环会将列表中存在的字符串也分开打印,例如'asd',for后为 'a','s','d'
if not type(i) == list: #判断类别
print(i)
else:
for j in i:
print(j)
def for_list(list1): #使用函数打印所有列表中的元素
for i in list1:
if type(i) == list:
for_list(i)
else:
print(i)
for_list([1,2,3,[1,2,[1,2,[12,34,['aasas','asadadf']]]]])

7.列表切分

list3 = [1,2,3,4,5]
print(list3[1:3])   #切分1-2下标元素 长度为下标差

8.容器序列(容器)和编排序列(真正的数据)

list1 --> 容器(列表,元祖等) [1,2,3,4,5],[True,False] --> 编排序列

传统生成方式
list1 = []
for i in range(10):
list1.append(i)

列表生成式:将一个编排序列放入列表中
list1 = [i for i in range(10)] #性能更高
list2 = [i for i in 'asdfghjk']

print(list1)
print(list2)

list3 = [(i, j) for i in list1 for j in list2] #注意:(i,j)
print(list3)

l1 = ['spades', 'diamonda','clubs','hearts']
l2 = ['A',2,3,4,5,6,7,8,9,'j','q','k',10]
list4 = [((i,j)) for i in l2 for j in l1] #注意循环次序

i = 0
l2 = list()
while i < (len(list4)):
if "k" in list4[i]:
l2 += list4[i:i+1]
i += 1

print(l2)

9.切片 取左不取右 前闭后开


list1= [i for i in range(1,11,1)]
print(list1)
xx = list1[2:4] #2,3 便于计算切片的数量:4-2
yy = list1[1:] #list1[1:len(list1)]
zz = list1[:3] #不包括3之前的
print(xx)

l1 = list1[-1]
l2 = list1[-1:]
print(l1)
print(l2) #两者区分,一个取值一个切片仍是列表

# print(id(list1))
# print(id(list1[2:5]))
# print(id(list1[3:4]))
# print(id(xx))
# print(id(yy))

10.引用规则:python中变量是引用而不是赋值

a = [1,2,3]
b = a #直接将a的地址给了b,未重新开空间 对两个变量进行操作时,都是对同一个地址中存储的数据操作
a.append(4)
print(a)
print(id(a))
print(b)
print(id(b))