zoukankan      html  css  js  c++  java
  • python学习笔记(二)列表操作

    列表及列表操作:

      列表是最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三位数组,套几层就是几维,定义格式如下:

    1 list1 = [1,2,3,4]#一个普通的数组
    2 list2 = ['marry','lily',[50,'money']]#二维数组
    3 list3 = ['name','sex',['lily',124,['aaaa','bbb']]]#三维数组
    1 all_nums=[123,456,[789,10,11]]
    2 three=[123,456,[789,10,11,['hahah','1234']]]
    3 print(all_nums[2][1]) #10
    4 print(three[2][-1][0]) #hahah

      通过下列访问中的元素,下标从0开始计数,也就是说,比如一个列表,有5个元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样,对列表的操作,分以下几种增,删,改,查

    下标,角标,索引:
      

    1 stus=['xiaohei','xiaobai','xiaohuang','xiaolan']
    2 print(stus[1]) #'xiaobai'
    3 print(stus[-1]) #'xiaolan'  最后一个元素下标可以写-1
    4 print(stus[-2]) #'xiaohuang'

    增加:

    msg='你好'
    name=['andashu','cc','niuniu']
    name.append(msg)#在list末尾增加一个元素
    name.insert(1,msg)#从指定位置插入,这个1代表下标
    name.insert(10,msg)#如果指定下标不存在,那么就是在末尾添加
    name.insert(-1,msg)#-1可以写,但是结果添加出来不对,所以一般不写
    print(name)

    修改:

    1 msg='你好'
    2 name=['andashu','cc','niuniu']
    3 name[1]='baby'#修改指定位置的值,直接取下标进行修改即可

    查询:

    1 msg='你好'
    2 name=['andashu','cc','niuniu']
    3 print(name[0])#获取第一个元素
    4 print(name[-1])#-1代表最后一个元素
    1 stus=['xiaohei','xiaobai','xiaohuang','xiaolan']
    2 print(stus.count('xiaohei'))#查看在list中某个元素的个数
    3 print(stus.count('hahaha'))#查看在list中某个元素的个数,如果该元素不存在,那么返回0
    4 print(stus.index('xiaobai'))#找到这个元素的下标,如果多个,返回第一个
    5 print(stus.index('hahaha'))#找到这个元素的下标;如果多个,返回第一个;如果找一个不存在的元素,会报错

    删除:

    1 msg='你好'
    2 name=['andashu','cc','niuniu']
    3 name.remove('cc')#删除指定的值
    4 name.pop()#默认删除最后一个元素,如果指定下标,那么删除指定的元素
    5 name.pop(2)
    6 name.pop(100)#如果删除不存在的元素,那么报错
    7 del name[0]#删除指定位置的值
    8 name.clear()#清空列表

    列表操作,一些内置的方法:

     1 a=[1,2,3,4]
     2 b=[5,6,7,8]
     3 a.extend(b)#合并a,b两个列表
     4 print(a)#[1,2,3,4,5,6,7,8]
     5 print(b)#[5,6,7,8]只是把b列表里的内容合并到a中,b列表并不受影响
     6 
     7 stus = ['xiaohei','xiaobai','xiaohuang','cxdser','xiaohei']
     8 stus.reverse()#反转list
     9 print(stus)#['xiaohei', 'cxdser', 'xiaohuang', 'xiaobai', 'xiaohei']
    10 
    11 
    12 nums = [9,31,345,12,457,2352,12143,2321]
    13 nums.sort()
    14 print(nums)#[9, 12, 31, 345, 457, 2321, 2352, 12143]
    15 nums.sort(reverse=True)
    16 print(nums)#[12143, 2352, 2321, 457, 345, 31, 12, 9]
    17 #sort()排序,默认排序是升序,如果指定了reverse=True就是按照降序排

     list循环:

      如果直接for循环一个list的时候,那么每次循环的值都是这个list里面的元素

    1 names=['haha','hehe','heihei']
    2 for name in names:
    3     print(name)     # haha   hehe  heihei
    4 
    5 
    6 index=0
    7 for i in range(3):
    8     print(names[index])
    9     index+=1         # haha   hehe  heihe

    切片:

      切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值,记住顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样,实例如下:

     1 nums=[1,2,3,4,5,6,2,3,4,6,4,3,2,1,2,3,4]
     2 print(nums[3:6])#[4,5,6]
     3 print(nums[:6])#[1,2,3,4,5,6] 如果切片的前面一个值不写的话,从头开始数
     4 print(nums[3:])#[4,5,6,2,3,4,6,4,3,2,1,2,3,4] 如果切片的后面一个值不写的话,取到末尾
     5 print(nums[:])#如果切片的两个值都不写的话,从头取到尾
     6 print(nums[::2])#步长为2,这个代表取所有的元素,然后每隔2个元素取一个
     7 print(nums[::-1])#步长是正数的话从左往右取,步长是负数的话从右往左取,相当于倒序排列
     8 print(nums[-1:-9:-1])
     9 print(nums[16:8:-1])
    10 #切片同样适用于字符串,字符串也有下标
    11 title='今天发 苹果' #空格也算一个字符串
    12 print(title[0]) #
    13 print(title[:4])#今天发
    14 for t in title:
    15      print(t)#今天发 苹果
    16 for i,t in enumerate(title):#enumerate可以同时循环索引下标和值
    17     print('%s:%s'%(i,t)) #0:今 1:天 2:发 3:  4:苹 5:果
    18 #列表也适用enumerate:
    names=['haha','hehe','heihei']
    for index,name in enumerate(names):
    print('%s:%s'%(index,name))
    
    

    小练习:

      注册:输入用户名,判断账号是否存在,若存在给出提示;若不存在,提示注册成功;

  • 相关阅读:
    Ngnix(三)—— window下布置nginx服务集群
    Java基础(一)—— 网络编程(一)—— Java Socket总结
    2018新浪Java笔试总结
    java yyyyMMddHHmmss格式字符串转换为yyyy-MM-dd HH:mm:ss格式字符串
    c# 返回多个参数(利用Tuple)
    c# 域名转换成ip地址
    myhaits if test判断字符串
    java中List转换成Json
    java打包发布程序.jar(Eclipse)
    redis设置密码
  • 原文地址:https://www.cnblogs.com/wxcx/p/8099667.html
Copyright © 2011-2022 走看看