首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python语法学习记录(5):LIST 用法

  • 25-03-03 18:02
  • 2699
  • 7806
blog.csdn.net
#列表初始化及打印
print("===="*5,"列表初始化及打印:")
list1 = ['ele1','ele2','ele3']
print(type(list1))
print("列表打印",list1)
print("list1[1]:",list1[1])# 小标,角标,索引 0 1 2 
print("list1[-1]:",list1[-1])#从右边往左数1个元素下标是-1
print("list1[-2]:",list1[-2])#从右边往左数2个元素下标是-2
print("list1[-3]:",list1[-3])#从右边往左数3个元素下标是-3
#print("list1[-4]:",list1[-4])#从右边往左数3个元素下标是-3
#小于-3,大于2的索引会报错
print("list1[0:2]:", list1[0:2])
print("list1[1:]:", list1[1:])
print("list1[:2]:", list1[:2])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

print("===="*5,"列表化:")
list0 = list(range(0 , 99))
list1 = list('12')
list2 = list('12.4')
list3 = list('hello')
print("列表打印",list0)
print("列表打印",list1)
print("列表打印",list2)
print("列表打印",list3)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10


#列表增加append
list1 = ['ele1','ele2','ele3']
print("===="*5,"列表增加append:")
print("列表打印",list1)
list1.append('ele4') # append,增加到末尾
print("列表打印",list1)

#列表增加insert
print("===="*5,"列表增加insert:")
list1.insert(0,'ele0')# insert,在指定是位置增加元素
list1.insert(6,'ele5')# insert 如果指定的小标不存在,那么就在末尾添加
list1.insert(-1,'ele6')# 注意:insert不要用-1,位置不对    重要
print("列表打印",list1)

# 修改,即赋值
# 替换list1[6]list1[7]
print("===="*5,"修改赋值list1[5]list1[6]:")
print("列表打印",list1)
t=list1[6]
list1[6]=list1[5]
list1[5]=t
print("列表打印",list1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

# 查找某个字符在字符串中
list1 = ['ele1','ele2','ele3']
print("===="*5,"查找元素在字符串中")
if 'ele1' in list1:
    print('ele1 is in')
else:
    print('ele1 is not in')
if 'ele10' in list1:
    print('ele10 is in')
else:
    print('ele10 is not in')

# 查看某个元素在数组里面的个数,count,不存在返回0
print("===="*5,"查找元素个数")
print(list1.count('ele10'))
print(list1.count('ele1'))
# 找到元素的索引,如果有多个找到第一个,如果找到一个不存在的,就报错
print("===="*5,"找到元素的索引")
#print(list1.index('ele10'))
print(list1.index('ele2'))


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22


# 删除pop
list1 = ['ele1','ele2','ele3']
print("===="*5,"删除pop")
print("列表打印",list1)# pop默认删除最后一个元素,可以指定下标删除
list1.pop()
print("列表打印",list1)
list1.pop(0)
print("列表打印",list1)
print("pop :",list1.pop())# 删除直接打印,会将删除的值返回
print("列表打印",list1)

# 删除remove 删除不会打印自己 
print("===="*5,"删除remove")
list1 = ['ele1','ele2','ele3','ele4']
list1[2]=list1[3]
print("列表打印",list1) #删除遇到的第一个元素
list1.remove('ele4')
print("列表打印",list1)
list1.remove('ele4')
print("列表打印",list1)

# 删除del 删除指定元素
print("===="*5,"删除del")
del list1[0]
print("列表打印",list1)

# clear 清空整个list
print("===="*5,"清空整个list")
list1.clear()
print("列表打印",list1)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32



# copy kaobei整个list
list1 = [1,2,3]
print("===="*5,"copy整个list")
list2 = list1.copy()
print("列表打印",list2)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

[外链图片转存失败(img-4puK9rIt-1567578572671)(https://i.loli.net/2019/05/26/5ceab3e775ed160686.png)]



# reverse,反转list
list1 = [1,2,3]
print("===="*5,"反转list")
print("列表打印",list1)
list1.reverse()
print("列表打印",list1)

# sort 排序,默认升序
list1 = [11,200,3]
print("列表打印",list1)
list1.sort()
print("列表打印",list1)
list1.sort(reverse=True)# 注意:按照降序排,sort指定reverse=True
print("列表打印",list1)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17


#求长度
print("===="*5,"求长度len")
list1 = [11,200,3]
print("长度:",len(list1))


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7


#+:它主要实现的是多个列表之间的拼接
#*:主要实现的是列表的复制和添加
#比较>,<:主要进行数据型列表的元素比较
#and等:;逻辑运算符,可以进行列表之间的逻辑判断

#列表的运算  加法
#效率低于extend
print("===="*5,"列表的运算:加法")
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1 + list2
#list4 = list3 - list1   没有减法
print("列表打印list3:",list3)
#列表的运算  乘法
print("===="*5,"列表的运算:乘法")
list4 = list1*3
print("列表打印list4:",list3)
#列表大小比较
print("===="*5,"列表大小比较")
import operator
a = [1,2,3]
b = [1,2,3]
c = [1,2,0]
print(operator.lt(c,b)) #相当于a
print(operator.le(c,b)) #相当于a<=b     less and equal
print(operator.eq(a,b)) #相当于a==b     equal        字母完全一样,返回True,
print(operator.ne(c,b)) #相当于a!=b     not equal
print(operator.gt(a,c)) #相当于a>b      greater than
print(operator.ge(a,c)) #相当于a>=b     greater and equal

#最大值最小值及其所在位置
print("===="*5,"最大值最小值及其所在位置")
a = [1,2,3]
print("最大值:",max(a))
print("最大值所在位置:",a.index(max(a)))
print("最小值:",min(a))
print("最小值所在位置:",a.index(min(a)))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39


#============================================================================
# 二维数组
print("===="*5,"二维数组")
list2 =[1,2,[31,32]]#实际是个长度为三的list   list2[2]为又一个list
print("二维数组列表打印list2:",list2)
print("len of list2:",len(list2))
print("list2[0]:",list2[0])
print("list2[1]:",list2[1])
print("list2[2]:",list2[2])
print("list2[2][0]:",list2[2][0])
print("list2[2][1]:",list2[2][1])
list2 =[[1,2],[31,32]]#实际是个长度为三的list   list2[2]为又一个list
print("二维数组列表打印list2:",list2)
print("len of list2:",len(list2))
print("list2[0]:",list2[0])
print("list2[0][0]:",list2[0][0])
print("list2[0][1]:",list2[0][1])
print("list2[1]:",list2[1])
print("list2[1][0]:",list2[1][0])
print("list2[1][1]:",list2[1][1])

# 三维数组
print("===="*5,"三维数组")
list3 =[2,5,[1,7,[0,10]]]#实际是个长度为三的list   list3[2]为又一个list
print("三维数组列表打印list3:",list3)
print("len of list3:",len(list3))
print("list3[0]:",list3[0])
print("list3[1]:",list3[1])
print("list3[2]:",list3[2])
print(list3[-1][-1][-1])   # 打印最后一个
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

# 合并两个数组extend
print("===="*5,"合并两个数组extend")
list2 =[[1,2],[31,32]]
list2.extend(list3)
print("列表打印list2:",list2)
print("len of list2:",len(list2))
print("===="*5,"合并两个数组append")
list2 =[[1,2],[31,32]]
list2.append(list3)
print("打印list2:",list2)
print("len of list2:",len(list2))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

#============================================================================
# 循环
print("===="*5,"循环")
list1 = [[1] for i in range(3) ]
print("打印list1:",list1)
list1[0].append(3)
list1[1].append(5)
list1[2].append(7)
print("打印list1:",list1)

print("===="*5,"循环")
list1 =['ele0','ele1','ele2']
for ele in list1: #如果直接for循环一个list的时候,那面每次循环的值是这个list里面的元素,换行打印list数组里面的元素
    print(ele)

# 循环,同时打印索引和数组值enumerate(枚举),必须含有两个参数
print("===="*5,"循环enumerate(枚举)")
for index, item in enumerate(list1):#i,v随意注册的变量
    print ("index = %s,value = %s" % (index, item)) # index = 0,value = cm1

print("===="*5,"循环range")
for i in range(len(list1)):
	print ("index = %d,value = %s" % (i, list1[i]))

# 注意:循环list时,不能有删除的操作,因为一旦删除一次,list就变化,如下:删除所有奇数
# 错误写法
#在进行删除后 list数据变少更新之后  迭代器可能仍然按照原来的地址进行迭代寻址
print("===="*5,"删除操作错误写法")
list1 = [1,1,2,3,4,5,6,7,8,9]
for ele in list1:
    print("this turn ele is :",ele)
    if ele%2!=0:
        list1.remove(ele)
        print("after remove list is:",list1)
print("打印list1:",list1)

print("===="*5,"删除操作错误写法浅拷贝")
list1 = [1,1,2,3,4,5,6,7,8,9]
list2 = list1
# 注意:不能用list2=list1,指针一样
# 注意:list2=list1浅拷贝
# 注意:list2 =list1[:]深拷贝
# 深浅拷贝的区别,内存地址是否变化 参考下面的打印地址部分
for ele in list2:
    print("this turn ele of list2 is :",ele)
    if ele%2!=0:
        list1.remove(ele)
        print("after remove list1 is:",list1)
print("打印list1:",list1)

# 正确写法
# remove(),()中是值
print("===="*5,"删除操作正确写法")
list1 = [1,1,2,3,4,5,6,7,8,9]
list2 = list1[:]
for i in list2:
    if i%2!=0:
        list1.remove(i)
print("打印list1:",list1)     
print("打印list2:",list2)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

# 打印list的地址id()
print("===="*5,"打印list的地址id")
list1 = [1,2,3,4,5,6,7,8,9]
list2 = list1
list3 = list1[:]
print("打印list1:",list1)     
print("打印list2:",list2)
print("打印list3:",list3)     
print("List1地址:",id(list1))
print("List2地址:",id(list2))
print("List3地址:",id(list3))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

#============================================================================
# 切片:list取值的一种方式,顾头不顾尾
print("===="*5,"list的切片(顾头index不顾尾index)")
list1 = [1,2,3,4,5,6,7,8,9]
print("打印list1:",list1)
slice_list1 = list1[0:1] #取list1[index1]直到list1[index2],不取list1[index2]
print("打印slice_list1=list1[0:1]:",slice_list1)
slice_list2 = list1[:3] # 如果切片前面一个值不写的话  从开头开始取  直到list1[index1] 不取list1[index1]
print("打印slice_list2=list1[:3]:",slice_list2)
slice_list3 = list1[3:] # 如果切片后面一个值不写的话  从list1[index1]开始取  直到末尾 取末尾
print("打印slice_list3=list1[3:]:",slice_list3)
slice_list4 = list1[:] # 如果切片前面后面的值都不写的话,全部取出来
print("打印slice_list4=list1[:]:",slice_list4)
#切片之后地址均不一样
print("list1地址      :",id(list1))
print("slice_list1地址:",id(slice_list1))
print("slice_list2地址:",id(slice_list2))
print("slice_list3地址:",id(slice_list3))
print("slice_list4地址:",id(slice_list4))
#插入新值
print("===="*5,"list的切片插入新值")
list1 = [1,10,100,1000]
print("打印list1:",list1)
list1[1:1] = [2,3,4]
print("打印list1:",list1)
print("===="*5,"list的切片删除元素")
#删除元素
list1[1:4] = []
print("打印list1:",list1)


# 步长,常用概率高:间隔几个取一个
print("===="*5,"list的切片(步长)")
list1 = [1,2,3,4,5,6,7,8,9]
#new_slice_list = list1[index1:index2:step] 
# 从index1取到index2,步长为step
slice_list1 = list1[::1]
slice_list2 = list1[::2]
slice_list3 = list1[::3]
print("步长是正数时,从左往右取")
print("步长1:",slice_list1) 
print("步长2:",slice_list2) 
print("步长3:",slice_list3) #不够则结束
slice_list_1 = list1[::-1]
slice_list_2 = list1[::-2]
slice_list_3 = list1[::-3]
print("步长是负数时,从右往左取")
print("步长-1:",slice_list_1)
print("步长-2:",slice_list_2)
print("步长-3:",slice_list_3)
new_slice_list1 = list1[1:5:1]
print("start: 1 end: 5 step: 1:",new_slice_list1)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值
new_slice_list2 = list1[-1:-5:-1]
print("start:-1 end:-5 step:-1:",new_slice_list2)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值
new_slice_list3 = list1[1:5:-1]
print("start: 1 end: 5 step:-1:",new_slice_list3)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

#============================================================================
#特殊方法初始化列表
print("===="*5,"特殊方法初始化列表")
list1 = [6]*5
print("打印list1:",list1)
list1 = [6 for i in range(0, 5)]
print("打印list1:",list1)
list1 = [[] for i in range(0, 5)]
print("打印list1:",list1)
list1 = [i+1 for i in range(0, 5)]
print("打印list1:",list1)
list1 = [i+1 for i in range(0, 5)]
print("打印list1:",list1)
list1 = [[i for i in range(0, 5)]  for j in range(5)]
print("打印list1:",list1)
list1 = [(i, j) for i in range(0,5) for j in range(0,5) ]
print("打印list1:",list1)
list1 = [ele for ele in [(i, j)for i in range(5) for j in range(5)]]
print("打印list1:",list1)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树基础语法内置类416623 人正在系统学习中
注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/90582866"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top