zoukankan      html  css  js  c++  java
  • python第二课list基本命令

    列表:

    stus= 'ada,dsfas.,saf,sdfas,saf'  #字符串
    new_stus = ['','','linux','123','数组']   #列表 取值方便

    #列表,数组,listarray  指的是一样的东西  不同叫法
    #下标,索引,角标,编号
    print(new_stus[2])   #根据下标取值
    print(new_stus[-1])  #最前面一个元素下标是0 ,最后面一个下标是 -1

    cities = []
    增加 append&insert
    cities.append('北京')   # append在列表末尾增加一个元素
    cities.insert(-1,'上海')  #在指定的位置增加,这里不能写负数(负数和0一样的效果),他不会再最后添加
    cities.append('天津')
    print(cities)

    删除

    cities.pop(0)  #删除指定位置下标
    cities.remove('北京')   #删除指定元素名称
    cities.clear()   #清空list
    del cities[0]       #删除指定位置
    print(cities)

    修改
    print(cities)
    cities[-1]='山西'    #修改时候如果指定下标不存在,会报错
    print(cities)

    查询
    print(cities[0])        #查找指定位置
    print(cities.index('天津'))   #获取元素下标,如果找不到就会报错
    print(cities.count('天津'))   #查看元素在list中出现了多少次

    翻转list

    mylist = ['','','linux','']
    mylist.reverse()   #只是把list翻转一下,并不输出
    print(mylist)

    排序
    num = [1,4,4,2,2345,6]
    # num = ['f','s','c','b','a']
    num1 = ['北京','山西','为难','天津','阿门']
    # num.sort()              #排序--升序,并没有返回值
    num.sort(reverse=True)    #排序--将序,并没有返回值
    print(num)
    print(num+num1)         #合并list
    print(num*2)            #复制 

    多维数组

    words = ['view','code','tools',['price','num',198,['hello','usa','吃鸡']]   ] #二维数组
    print(words[-1][-1][1])
    print(words[-1][2])

    -1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取

    列表循环
    lists = ['大安市','是打发','范德萨','理解']
    for name in lists:
        print(name)
    字符串循环
    words = 'asdfa,答复,阿斯蒂芬'
    for name1 in words:
        print(name1)

    #for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素,循环list输出的是list里每一个值(小单位),如果是字符串,输出的是字符串每一个字符

     

    切片

    # 切片是list取值的一种方式
    nums = ['段佳林','陈卫亮','王占宇','李博']
          #  0        1       2         3
    print(nums[1:3])

    print(nums[0])
    print(nums[1:3])  #顾头不顾尾
    print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
    print(nums[:2]) #如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写
    print(nums[:]) #取所有的


    lis = list(range(1,21))
    print(lis)
    print(lis[::2]) #步长,隔几个取一次
    print(lis[::-2]) #步长,隔几个取一次
    如果步长是正数的话,从左往右边开始取值
    如果步长是负数的话,从右边往左边开始取值

    print(lis[::-1]) #反转list
    print(lis)
    print(lis[1::-1])
    print(lis[:])
    lis.reverse()  #改变了原来list的值
    print(lis)
    # new_list = lis[::-1]  #产生了新的一个list,不会改变原来list的值
    # print(new_list)
    # print(lis)
    切片操作同样适用于字符串。
    # info = '你好,今天天气很好'
    # #        0 1 2 3 4 5 6 7 8
    # print(lis)
    # print(lis[:18:-1])
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
                                                                     #18 # 19
    #
    # print(lis)
    # print(lis[::-2])
    # print(lis[::-1])
    # # print(lis[:18:-1])  # -1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取
    s = 'hahaha'
    s = '小黑'
    print(s)
    print(s[0])
    print(s[::-1])

    List练习

    校验用户名是否合法:
       # 输入账号       #input
       # 如果账号存在的,提示已经被注册,如果不存在的,就让他注册 all_users  
       #不能为空          #strip()
       #用户名长度长度6-12之间 len()
       #最多输入3     #循环

    all_users =  ['阿斯蒂芬','看会','zhangwifi']
    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('失败次数过多')

    将交作业和未交作业的学生分开

    stus=[
         ['小明','未交'],
         ['小白','已交'],
         ['小紫','已交'],
         ['小红','未交'],
         ['小绿','未交'],
         ['小黄','未交'],
         ['小黑','已交']
       ]
    pass_list = [ ] #所有已经交作业的同学
    fail_list = [ ] #没有交作业同学的名字
    for stu in stus:
       status = stu[1] #状态
       name = stu[0] #名字
       if status == '未交':
          fail_list.append(name)
       else:
          pass_list.append(name)
    print('未交作业的所有同学是 %s ,总共有 %s 个人'%(fail_list,len(fail_list)))
    print('已交作业的所有同学是 %s ,总共有 %s 个人'%(pass_list,len(pass_list)))

    List循环

    lists = [
       '张流量','wifi','王路由器','牛网线',[1,2,3,4]
           ]
    words='marrylilyjoker'
    # for i in range(4):  #其他语言
    #  # 0 ,1,2,3
    #     print(lists[i])

    for name in lists:
       if type(name)==list:  #判断一个变量的类型
          for i in name:
             print(i)
       print(name)

    循环删listcopy模块

    a = [1,1,2,3,3,4,5,5,6]    #循环删list里面的数据的时候,结果会不正确
    a1 = [1,1,2,3,3,4,5,5,6]

    #删除的时候用copy模块
    import  copy
    a1 = a                  #浅拷贝
    a2 = copy.deepcopy(a)   #深拷贝
    ##浅拷贝和深拷贝的区别就是深拷贝会重新开辟一个内存空间
    # for i in a1:
    #     if i%2 != 0 :
    #         a.remove(i)
    # print(a)

  • 相关阅读:
    sgu175pascal
    poj3659pascal
    poj3411
    传球游戏pascal
    ubuntu 9.04 wubi安装的问题 2009511 13:58:00 (21ic)
    任何道理都是有局限的 20081020 11:07:00 (21ic)
    浓浓的亲情 2008106 8:53:00 (21ic)
    卖买房所得
    黑色的一周 20081018 3:23:00 (21ic)
    度的把握 2008929 20:59:00
  • 原文地址:https://www.cnblogs.com/duanjialin007/p/8661298.html
Copyright © 2011-2022 走看看