python列表操作


列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。如 list = ['a','b',2,5,'1']

1、新建列表

stus = []   #创建空列表
stus1 = list()   #创建空列表
print(stus)
print(stus1)
stus = ['范冰冰','维达','SOON','上述'] #创建非空列表
print(stus)

2、列表增加元素

stus = ['范冰冰','维达','SOON','上述']
stus.append('莉莉') #在列表末尾增加一个元素
stus.insert(2,'Lucy') #insert可以指定元素插入的位置
print(stus)

3、列表长度

stus = ['范冰冰','维达','SOON','上述']

print(len(stus))

4、修改列表元素

stus = ['范冰冰','维达','SOON','上述']

stus[3] = '哈哈'  #直接找到下标,对元素赋值
print(stus)

5、列表删除元素

stus = ['范冰冰','维达','SOON','上述']
stus.append('莉莉') #在列表末尾增加一个元素
stus.insert(2,'Lucy') #insert可以指定插入的位置
print(stus)
print(len(stus))
stus[3] = '哈哈'
print(stus)
stus.pop()  #默认删除最后一个元素
stus.pop(2)  #删除下标为2的元素
stus.remove('范冰冰')  #传入元素值,直接删除元素。 remove时必须传值
del stus[1]  #删除指定下标的元素
print(stus)
stus.clear()  #清空列表
print(stus)

stus.pop()、stus.remove()、 del stus[] 删除不存在的值时都会报错。

6、查询元素,查询元素下标

stus = ['范冰冰','维达','SOON','上述']
print(stus[2]) #查找指定下标的元素
print(stus.count('')) #查找指定元素出现的次数,注意一个列表元素按照一个整体处理,该值返回0
print(stus.index('维达'))  #按照元素名称查询元素下标

注意,按照元素查询下标的时候,若列表中有多个该元素,则返回第一次出现的该元素的下标。如果元素不存在,则报错

7、列表反转

stus = ['范冰冰','维达','SOON','上述']
stus1 =[1,3,6,4,2,6,8,3]
stus.reverse()#直接列表反转
stus2 = list(reversed(stus1))#使用list函数进行反转
print(stus2)  
print(stus)
#注意,反转的时候不能直接print(stus.reverse())

另外,按照列表切片也可以进行反转。

print(stus[::-1])   

8、列表排序

stus1 =[1,3,6,4,2,6,8,3]
stus1.sort()#直接对列表进行排序
stus2 = list(sorted(stus1))  #按照list函数进行排序
print(stus2)

倒序排列

stus1 =[1,3,6,4,2,6,8,3]
stus1.sort(reverse=True) #倒序排列
stus2 = list(sorted(stus1,reverse=True))  #按照list函数进行倒序排序
print(stus1)
print(stus2)
#注意,排序的时候不能直接print(stus1.sort()

备注:排序默认按照正序排列

9、两个列表相连

stus = ['范冰冰','维达','SOON','上述']
stus1 =[1,3,6,4,2,6,8,3]
stus1.extend(stus)  #两个列表相连,把一个list中的元素添加到另外一个list中
print(stus1)
#注意写法,不能直接print(stu1.extend(stus))

也可以连接自己,把自己输出两遍

10、列表操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python 表达式结果描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

11、列表截取--切片

切片是list取值的一种方式。切片取值是顾头不顾尾,取到尾巴的时候要加1,前面一个下标,后面一个下标,中间是冒号,下标从0开始时,前面可以不写。

stus = ['范冰冰','维达','SOON','上述']
print(stus[2])
print(stus[-2])
print(stus[-2:])
print(stus[1:2])
print(stus[1:4:2])#步长为2时,中间隔一个
print(stus[::])  #复制一个新列表
print(stus[::-1]) #将原来的list倒序输出
  • print(stu0[2:5])
  • print(stu0[:5])代表从最前面开始取值
  • print(str0[4:10]),取后面的值,要是取到末尾,那么后面的下标可以不用写 print(str0[4:])
  • 什么下标都不写的时候,相当于是复制一个新的List,如 new_stu0=stu0[:]
  • New_stu = stu[0],也是复制一个,但是在内存中的占用不一样
  • print(stu0[0:10:1]) ,再加一个冒号代表步长,代表隔一个或者隔几个取一个
  • print(stu0[0:10:2]),2的时候是跳过一个元素取一个值,
  • print(stu0[::-1])步长为负数时,从右往左取值,步长是正数时,是从左往右取

12、列表循环

stus = ['杨静', '王志华', '王银梅', '乔美玲',
        '段鑫琪', '王立文', '赵燕',
        '杨华', '周永波', '杨静']
for index,stu in enumerate(stus,1):#同时取到下标和值
    print("%s ==> %s"%(index,stu))

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。参数sequence为需要循环的序列,start为下标起始位置。

普通的list循环:可与上面对比

stus = ['杨静', '王志华', '王银梅', '乔美玲',
        '段鑫琪', '王立文', '赵燕',
        '杨华', '周永波', '杨静']

i = 0
for ele in stus:
    print(i,stus[i])
    i = i +1

如果直接循环一个list,那么每次取的就是list里面的每一个元素

13、多维数组

stu0 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
stu1 = [1,2,3,4, ['a','b','c'], ['',''] ]
stu1[5][0] = '哈哈'
print(stu1)
stu2 = [1,2,3,4,['a',['','',''],'b','c', ] ]#3维数组
stu2[4][1].insert(0,'呵呵呵')
print(stu2)

优质内容筛选与推荐>>
1、台球轶事 选手篇
2、Windows DHCP服务与配置实验
3、JSF2自定义组件编程系列 第五部分
4、UpdatePanel里使用页面跳转问题
5、算法设计与分析——符号三角形问题(回溯法)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn