• python学习(四)列表(数组)


    列表、list、数组、array都是一个意思,下标、索引、角标、编号也是一个意思,根据这个来取值

    new_stus = ['emily','刘佳','刘佳1','刘佳2','刘佳3','emily1']
    print(new_stus[0])
    print(new_stus[-1])
    输出结果:下标为0 的是emily,下标为-1则指最后一个,emily11
    1、新增
    cities=[南京]
    cities.append('北京')  在列表末尾增加一个元素
    
    
    cities.insert(0,'上海') 在列表指定位置增加一个元素
    
    
    print(cities)    输出结果,cities=[上海,南京,北京]
    2、修改
    cities=['北京','天津','上海','成都']
    cities[1]='南京'
    print(cities)
    输入结果: ['北京', '南京', '上海', '成都']
    此种修改方式,如果指定的下标不存在会报错
    3、删除
    1)cities=['北京','天津','上海','成都']
    cities.pop(0)
    print(cities)
    删除指定位置的元素,输出结果:['天津', '上海', '成都']
    2)cities=['北京','天津','上海','成都']
    cities.remove('上海')
    print(cities)
    删除指定的元素,输出结果:['北京', '天津', '成都']
    3)cities.clear() 清空整个list
    4)cities=['北京','天津','上海','成都']
      del cities[-1]
      print(cities)
    删除指定位置的元素,输出结果:['北京', '天津', '上海']
    4、查询
    cities=['北京','天津','上海','成都']
    print(cities)
    输出整个list
    print(cities[0])
    输出下标为0 的元素
    print(cities.index('天津'))
    获取元素的下标,找不到元素的时候会报错

    print(cities.count('天津'))
    查看元素在list里面出现了多少次
    5、反转
    my_list = ['python','jemeter','charles','postman']
    print(my_list.reverse()) #就是把这个list反转一下,但不会返回任何值
    print(my_list)#反转后的结果
    6、升序降序
    nums = [9, 2, 34, 12, 34, 3423, 456]
    nums.sort() #升序排序
    nums.sort(reverse=True) #降序排序
    print(nums)
    除了对数字列表进行排序,字母列表可以排序
    7、合并与复制
    cities = ['成都','南京']
    cities2 =['上海','北京','西安','成都']
    print(cities+cities2) #合并list,重复数据不会去重
    print(cities*2) #复制两遍
    8、len的用法
    1)列表中指取元素个数
    all_users = ['测试','测试1','测试2']
    print(len(all_users))
    结果是3,即该列表有3个元素
    2)字符串中指取字符串的长度
    words = 'views'
    print(len(words)) #字符串的长度
    结果是5,字符串包含5个字符,长度为5

    9、以上学习的练习题
    #校验用户名是否合法
    #输入账号密码 input
    #如果账号存在的,提示已经被注册,如果不存在的,就让他注册 all_users[]
    #不能为空 #strip()
    #用户名长度长度6-12之间
    #最多输入三次
    all_users = ['emily1','emily2','emily3']
    for i in range(3):
        username = input('请输入账号:').strip()
        if len(username)>5 and len(username)<13:
            if all_users.count(username)>0:
                print('用户名已经被注册')
            else:
                print('可以注册')
                break
        else:
            print('用户名长度不合法,长度应该在6-12之间!')
    
    else:
        print('失败数次过多')
    10、多维数组
    1)二维数组
    words = ['view','code','tools',['price','num',198]]  
    print(words[3][1])

    结果为:num

    2)三维数组

    words1 = ['view','code','tools',['price','num',198,['hello','usa','测试']]] 
    print(words1[3][3][1])

    结果为:usa

    11、切片

    list取值的一种方式(取多个值)
    nums = ['emily','emilyq','emily2','emily3']
    print(nums[1:3])  #顾头不顾尾,即取值不包含结尾下标的值,即取得是下标1和2的元素
    print(nums[1:])  #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
    print(nums[:2])  #从头开始取,取到后面某个下标结束,那么开头的小标可以不写
    print(nums[:])  #取所有值

    输出结果如下:

    ['emilyq', 'emily2'] 顾头不顾尾,就不会取下标为3的元素,只取小标为1和2的元素
    ['emilyq', 'emily2', 'emily3']
    ['emily', 'emilyq']
    ['emily', 'emilyq', 'emily2', 'emily3']

    12、步长

    lis = list(range(1,21))
    print(lis[:18:-1]) #-1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取
    print (lis) 
    print(lis[:10])
    print(lis[:10:3]) #步长  隔几个取一次数
    print(lis[::3])
    print(lis[::-1])  #如果步长是正数,从左往右取值;如果步长是负数,是从右边往左边取值
    print(lis[::-2])

    输出结果如下:

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

    13、多元数组反转

    lis = list(range(1,21))
    print(lis) lis.reverse()
    #改变了原来list的值 print(lis) #产生一个新的list,不会改变原来list的值

    输出结果如下:

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

    14、切片操作适用于字符串

    info = '你好,今天天气有雨'
    print(info[2:0:-1])

    输出结果为:

    ,好   

     步长为负要从右往左找,下标2的元素是逗号,下标1的元素是好,下标0的元素是你,顾头不顾尾,就只取下标2和1的,且是从右往左取



     
     
     
     




     
     
    
    
    
    
    
    
    
     
     
     


     


  • 相关阅读:
    百练 2712 细菌繁殖 解题报告
    Elasticsearch常用最全最常用工具清单
    并发工具类使用详解及区别(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
    Elasticsearch 启动过程详解
    Elasticsearch 编译调试总结
    gradle镜像源配置
    Activiti6详细教程
    CSDN-markdown编辑器语法
    Spring Boot Activiti 整合工作流引擎开发
    less使用语法详解
  • 原文地址:https://www.cnblogs.com/emilyliu/p/8647619.html
Copyright © 2020-2023  润新知