• python list,元组,字典的相关概念及操作


    1.list 列表结构方便取表中的值(根据下标取)例如:   new_stus = ['赵传慧','贾丹','张流量','李wifi','颜军田']

    2.list 列表有多种名称: 列表、list、数组、array

    3.列表的下标、索引、角标、编号来取值,最前面一个元素的下标是0,最后面一个元素的下标是-1。

    4.list 的增删改查,建立空列表 如 cities = []

       1)增加       append和insert方法

           cities.append('北京') #在列表末尾增加一个元素(依次增加)

           cities.insert(0,'上海') #在指定的位置增加元素  角标从0开始

       2)删除        pop,remove,clear和del方法

          cities.pop(0) #删除指定位置的元素

          cities.remove('北京')#删除指定的元素   不能指定位置

          cities.clear() #清空list

          del cities[-1] #删除指定位置的

           print(cities)

       3)修改

           cities[1]='南京' #修改的时候如果指定的下标不存在,会报错

       4)  查找   指定下标和index count

           print(cities[0]) #指定位置的

           print(cities.index('广州')) #获取元素的下标,如果找不到那个元素的话,会报错

           print(cities.count('广州')) #查看元素在list里面出现了多少次

    5.list的其他一些常用方法

           1)列表元素反转    reverse()方法

                 print(my_list.reverse()) #就是把这个list反转一下    此次打印结果为 none   只排序无结果 无返回结果

                 print(my_list)   # 打印反转后的结果

            2)升序和降序     sort()方法

                    nums.sort() #排序,升序

                    nums.sort(reverse=True) #  降序    通过reverse方法

                     print(nums)   # 数字和字母 字符串都可以拍讯

             3)合并list      

                 print(cities+cities2)#合并list    两个list相加

              4)复制list

                  print(cities*3) #复制几次

                   print('哈哈哈'*3)#字符串也可以复制

               5)针对多维数组 可根据位置依次递进查找

             例如:

                 words = ['view','code','tools',['price','num',198,['hello','usa','吃鸡']] ] #二维数组

                 print(words[-1][-1][1])   #usa

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

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

            

    List练习1

    # 校验用户名是否合法:

             # 输入账号       #input

             # 如果账号存在的,提示已经被注册,如果不存在的,就让他注册 all_users 【  】

             #不能为空          #strip()

             #用户名长度长度6-12之间 len()

             #最多输入3次     #循环

    all_users =  ['牛寒阳','梁盼','zhangwifi']

    for i in range(3):                            #range确定循环次数 for循环默认每次加1

             username = input('请输入账号:').strip()     #strip方法去掉前后空格

             if len(username)>5 and len(username)<13:

                       elif all_users.count(username)>0:  #通过count来统计判断

                                print('这个名字太好啦,已经被注册啦!')

                       else:

                                print('名字不错,赶紧注册吧!')

                                break

             else:

                       print('用户名长度不合法!长度6-12之间!')

    else:

             print('失败次数过多')

    6.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:  #判断一个变量的类型,list是一种变量类型

                       for i in name:

                                print(i)

             print(name)

    输出的结果:张流量 李wifi 王路由器  牛网线1 2 3 4  [1, 2, 3, 4]

     for name in words:

    print(name)

    for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素

    list 练习2

    stus=[

               ['小明','未交'],

               ['小白','已交'],

               ['小紫','已交'],

               ['小红','未交'],

               ['小绿','未交'],

               ['小黄','未交'],

               ['小黑','已交']

             ]

    pass_list = [ ] #所有已经交作业的同学  #定义一个 list的空表

    fail_list = [ ] #没有交作业同学的名字

    for stu in stus:     #stu为list表中的元素

             status = stu[1] #状态   #定义列表中元素

             name = stu[0] #名字

             if status == '未交':

                       fail_list.append(name)    #append方法进行添加

             else:

                       pass_list.append(name)

    print('未交作业的所有同学是 %s ,总共有 %s 个人'%(fail_list,len(fail_list))) #len方法统计长度

    print('已交作业的所有同学是 %s ,总共有 %s 个人'%(pass_list,len(pass_list)))#直接使用函数做变量

    7.list 切片(list的一种取值方式)

     示例:

    # 切片是list取值的一种方式

    nums = ['段佳林','陈卫亮','王占宇','李博']

    print(nums[1:3])

    print(nums[0])

    print(nums[1:3])  #顾头不顾尾

    print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写

    print(nums[:2]) #如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写

    print(nums[:]) #取所有的

    lis = list(range(1,21))#可以使用range  1-20

    print(lis)

    print(lis[::2]) #步长,隔几个取一次

    print(lis[::-2]) #步长,隔几个取一次

    # 如果步长是正数的话,从左往右边开始取值

    # 如果步长是负数的话,从右边往左边开始取值

    print(lis[::-1]) #反转list

    print(lis)#所有值

    print(lis[1::-1])# 取值为[2,1] *list[1’:2’:3’]取值先1’再3’最后2’的顺序规律

    print(lis[:])#所有值

    lis.reverse()  #改变了原来list的值 reverse会将中的值反序写入

    new_list = lis[::-1]  #产生了新的一个list,不会改变原来list的值  会将新值写入new_list

    print(new_list)

    print(list) #list值未改变

    # 切片操作同样适用于字符串。

    # info = '你好,今天天气很好'

    # 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]                                                            

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

    8.元组 tuple

    元组也是一个list,他和list的区别是,元组里面元素无法修改

    尝试循环、切片、下标取值、修改值是否生效?

    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))  #类型为tuple

    print('words',type(words))

    print('words2',type(words2))

    print(t.index(2)) # 通过index()找到元素的下表

    print(t.count(2)) #找到元素的个数

    9.字典

    字典是通过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)

    字典练习

    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)

    10.常用的字符串方法

    # a='   字 符 串    '

    # c = a.strip()  #默认去掉字符串两边的空格和换行符

    # c= a.lstrip()  #默认去掉字符串左边的空格和换行符

    # c = a.rstrip() #默认去掉字符串右边的空格

    # print('c...',c)

    # print('a...',a)

    words = 'http://www.nnzHp.cn'

    # print(words.strip('day')) #如果strip方法指定一个值的话,那么会去掉这两个值

    # print(words.count('a'))  #统计字符串出现的次数

    #print(words.index('z'))  #找下标,如果元素找不到的话,会报错

    # print(words.find('z')) #找下标,如果元素找不到的话,返回-1

    # print(words.replace('day','DAY'))  #替换字符串

    # print(words.isdigit()) #判断字符串是否为纯数字

    # print(words.startswith('http')) #判断是否以某个字符串开头

    # print(words.endswith('.jpg')) #判断是否以某个字符串结尾

    # print(words.upper())  #变成大写的

    # print(words.lower())  #变成小写的

    username = 'abcdefADS12345@#¥'

    # print(username.isalpha())  #判断字符串是否全为字母

    # print(username.isalnum()) #判断是否包含字母和数字,它是只要有字母或者有数字就返回true

    上篇小结

    上周回顾:

        jmeter的压测

            tps 每秒钟处理的请求数

            响应时间 越小越好

            聚合报告

        jmeter 添加负载机

            负载机:启动jmeter-server

            主控机:

                在配置里面添加 remote_hosts:ip:1099,ip:1099

        jmeter linux下运行

            jmeter -n -t xxx/sfdsdf/a.jmx -l res.jtl

        charles 抓包工具

            fiddler、winrek

            1、定位问题

            2、模拟一些异常的情况

            3、弱网测试

        python:

            条件判断

                if :

                   x

                else:

                    xx

            循环

                while     for

                for i in range(5):

     python数据类型:

        int 类型

        float 小数类型

        string 字符串

        布尔类型

    #可变变量

        #里面的元素你可以随便修改

        list

    #不可变变量

        里面值不能修改

        string、tuple

           

  • 相关阅读:
    【转】 Docker(部署常见应用):Docker安装Alibaba Nacos教程(单机-集群)
    【转】 SpringCloudAlibaba--10——sentinel
    【转】 SpringCloudAlibaba--09——sentinel
    【转】 SpringCloudAlibaba--08——sentinel
    【转】 SpringCloudAlibaba--07——gateWay
    【转】 SpringCloudAlibaba--06——geteway
    1045
    1045 access denied for user 'root'@'localhost' using password yes的解决方法
    在PHP中使用CURL
    zendstudio快捷键复制行Ctrl+Alt+向下无效的解决方法
  • 原文地址:https://www.cnblogs.com/cslw5566/p/8654898.html
Copyright © 2020-2023  润新知