• 列表/元组/切片/字典/字符串处理方法


    1、列表
    stus='赵传慧,贾丹,段家林,刘伟,梁盼,刘艳'

    new_stus = ['赵传慧','贾丹','张流量','李wifi','颜军田']
    #列表、list、数组、array
    #下标、索引、角标、编号
    print(new_stus[-1])
    #最前面一个元素的下标是0,最后面一个元素的下标是-1
    cities = []
    #增
    cities.append('北京')  #在列表末尾增加一个元素
    cities.insert(0,'上海') #在指定的位置增加元素
    cities.append('广州')
    #删
    cities.pop(0) #删除指定位置的元素
    cities.remove('北京')#删除指定的元素
    cities.clear() #清空list
    del cities[-1] #删除指定位置的
    print(cities)
    #修改
    cities[1]='南京' #修改的时候如果指定的下标不存在,会报错
    print(cities)
    # #查
    print(cities[0])  #指定位置的
    print(cities.index('广州')) #获取元素的下标,如果找不到那个元素的话,会报错
    print(cities.count('广州'))  #查看元素在list里面出现了多少次

    my_list = ['python','jmeter','charles','postman']
    print(my_list.reverse())  #就是把这个list反转一下
    print(my_list)

    nums = [9,2,34,12,34,457,2342]
    nums = ['b','f','e','z','g','h']
    # nums.sort() #排序,升序
    nums.sort(reverse=True) #排序,降序
    print(nums)
    cities2 = ['深圳','厦门','成都']

    # print(cities+cities2)#合并list
    print(cities*3) #复制几次
    print('哈哈哈'*3)
    words = ['view','code','tools',['price','num',198,['hello','usa','吃鸡']]   ] #二维数组

    print(words[-1][-1][1])
    print(words[-1][2])

    names=[  ['小黑',['小绿',138]],'小红',['小紫',['小白']]]
    # print(names[-1][-1])
    print(names[0][-1][-1])

    list循环

    lists = [
        '张流量','李wifi','王路由器','牛网线',[1,2,3,4]
             ]
    words='marry,lily,joker'
    # 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)


    # for name in words:
    #     print(name)
    #for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素

    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('失败次数过多')
        
        
    小练习2:

    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)))


    2.元组

    # 元组也是一个list,他和list的区别是,元组里面元素无法修改
    # print(type(t))
    # #试试 循环、切片、下标取值、修改值
    # print(t[:1])
    # print(t[3])
    # # for i in t:
    # #     print(i)
    # print(t)
    #如果元组里面 只有一个元素的话,那么你必须在这个元素后面加一个逗号
    t = (1,2,4,5,6,7)
    words=(1,)
    words2=('abc',)
    print('t',type(t))
    print('words',type(words))
    print('words2',type(words2))
    print(t.index(2)) #找到元素的下班
    print(t.count(2)) #找到元素的个数

    3.切片

    # 切片是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的值
    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])

    4.字典:

    # key  - value
    # string list dict
    #  1、取数据方便
    # 2、速度快,
    #查
    # print(infos.get('phone'))#取不到这个key的话,就是None
    # print(infos.get('phone',110))#如果取不到这个key的话,默认就是110
    # print(infos['phone'])#如果key不存在会报错
    infos  =  {'name':'张流量','sex':'男','addr':'火星','age':180}

    #增
    infos['phone']=13611087045 #增加一个key
    infos.setdefault('小金库','2000w')
    infos.setdefault('name','鹏妹妹') #如果key存在的话,不会修改原来key里面的值
    infos['name']='鹏妹妹' #如果key存在的话,会修改原来key对应的value
    # print(infos)
    #字典是无序的

    #修改
    infos['name']='鹏妹妹'

    #删除
    # infos.pop('name') #指定key来删除
    # infos.popitem() #随机删除一个key
    # del infos['phone'] #指定key来删除
    # infos.clear()  #清空字典

    #方法
    # print(infos.values())#获取到字典所有的value
    # print(infos.keys()) #获取到字典所有的key
    # print(infos.items()) # 获取字典所有的k-v

    people = {
        '田雨':{
            'age':18,
            'money':200000,
            'clothes':'100套',
            'hzp':'n多',
            'shoes':['nike','addis','lv','chanle']
        },
        '张流量':{
            '金库':'2000w',
            'house':['三环一套','4环2套'],
            'cars':    {
                    'japan':['普拉多','兰德酷路泽'],
                    'usa':['林肯','凯迪拉克','福特'],
                    'china':['五菱宏光','qq','红旗']
                }
        }
    }
    people['张流量']['cars']['usa'].append('牧马人')

    # people['田雨']['shoes'].append('匡威')
    # print(people)
    # people['田雨']['money'] = people['田雨']['money']+200
    # people['田雨']['money'] += 200
    # print(people)
    #直接循环一个字典的话,那么循环的是字典的key
    # for p in people:
    #     print(p)
    for k,v in people.items():  #循环的时候,同时取key和value
        print(k,'======》',v)
        
    5.字典练习:

    users = {
        'niuhanyang':'123456',
        'yangyafu':'456789',
    }
    #所有的账号和密码
    # username
    # pwd
    # cpwd
    # print( '123456' in users )   #字典里面用in来判断的话,只是判断key是否存在
    for i in range(3):
        username = input('账号:').strip()
        passwd = input('密码:').strip()
        cpasswd = input('密码确定:').strip()
        if username=='' or passwd=='' or cpasswd=='':
            print('用户名/密码不能为空')
        elif username in users:
            print('用户名已经被注册!')
        elif passwd!=cpasswd:
            print('两次输入的密码不一致')
        else:
            print('恭喜,注册成功!')
            # users.setdefault(username,passwd)
            users[username]=passwd
            break
    else:
        print('错误次数过多')
    print(users)

    作业1:

    # 第一个作业
    # 1、校验密码是否合法的程序。
    #     输入一个密码
    #     1、长度5-10位
    #     2、密码里面必须包含,大写字母、小写字母和数字
    #     # http://www.nnzhp.cn/archives/160 取交集的这种方式可以实现
    #     3、最多输入5次
    capital={'A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
    minuscules={'a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
    number={'1','2','3','4','5','6','7','8','9','0'}
    password=[]

    for i in range(5):
        pwd=input("请输入密码:").strip()
        long=len(pwd)
        password = set(pwd)
        if long > 10 or long<5:
            print("密码长度需要在5-10位之间")
        elif password & capital == set() or password & minuscules == set() or password & number == set():
            print('密码里面必须包含,大写字母、小写字母和数字')
        elif pwd == '':
            print("请输入密码:")
        else:
            print("您输入的密码合法")

    作业2:

    #二维字典的插入和读取
    #写一个程序根据输入进行录入学生信息或查看作业情况

    homeworks = {
        '张流量':{'2018.3.22':'未交','2018.3.23':'未交'},
        '田雨':{'2018.3.22':'未交','2018.3.23':'未交'},
    }
    for i in range(3):
        choice = input('请输入你的选择: '
                       '1、录入学生作业情况 '
                       '2、查看作业情况 ')
        if choice=='1':
            name = input('学生姓名:')
            date = input('日期:')
            status = input('是否作业:')
            if name=='':
                print("请输入姓名")
            else:
                homeworks.setdefault(name,{})
                homeworks[name][date]=status
                print('录入成功!您录入的信息为:'
                      '%s:%s:%s' %(name,date,status))
        elif choice=='2':
            for k, v in homeworks.items():  # 循环的时候,同时取key和value
                print(k, ':', v)
        else:
            print('输入错误')
    print('您的输入已达到三次,系统自动退出')

    原博文地址:https://www.cnblogs.com/lilyzhang-2018/p/8667095.html        
       

  • 相关阅读:
    springboot springdata 整合es
    forkJoinPool
    springboot整合ElasticSearch
    雪花算法生成全局唯一ID
    linux环境下elasticsearch+kibana+ik(实现热词自动更新)
    ECMAScript 6新特性简记
    Tsung:开源多协议分布式负载&压力测试工具
    js 数组迭代方法总结
    js for循环
    箭头函数this的问题
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9053697.html
Copyright © 2020-2023  润新知