• 14
  • 14
分享
  • Python中几种常见的列表——软件测试圈
  • TIMI 2021-10-18 11:20:23 字数 2297 阅读 4011 收藏 14

Python是一门非常简洁的语言,和c/c++,java等有着较大的差别。到list和tuple这儿有点犯迷糊了,就从这儿开始写起。目前做接触到的列表有4个,dicth和set,这篇文章就来看看这几种列表的特性和用法。

一、python“数组”List

List是python内置的一种数据类型列表。在我看来有点类似于数组,但是深究下来却有很多不同。

题外话:python和以往学过的编程语言最大的不同在于变量不用声明类型,也就是可以实现如下操作:

a = 3
print(a)
a = ‘s’
print(a)

这样的操作在大多数在以前学过的三种语言种都是不合法的,但是在python种是合法的,python种的变量和c语言种的void类型指针有点类似(粗浅理解)。

回归正题,既然python中没有声明类型这一概念,那么list自然也是不用声明类型的,c/c++/java中的数组都只能存储一种数据类型的数据,在python种可以存储多种,list里面也可以存放另一个list例如,下面的语句是合法的:

a = [1, ’b’ , 2 , ’c’ , [1,2,3]]

1.1 list中数据的访问

数组的下标是从开始的,同样list的索引也是从0开始的,例如,a[0]的返回值是1,a[1]的返回值是’b’;最后一个元素是len(a)-1,其中len()的返回值是a的长度。因此可以用a[-1]去最后一个元素,即c,同样a[-2]的返回值是2。

1.2 list的操作函数

长度:len();传入参数为list名,返回值为list的长度。

删除:删除末尾元素list.pop(),删除指定位置元素list.pop(i),i是从0开始的索引。

插入:将元素插入到指定位置,list.insert(i)。

追加:末尾增加一个元素x,list.append(x)。

二、不可变“数组”tumple

Tumple和list类似,但是tumple一经初始化就不能再修改,可以用如下语法定义:

T = (1 , 2 , 3)

定义只有一个元素的tumple时为了消除歧义,可以采用如下语法:

T = (1 ,)

可变tumple:

Tumple是不可变的但是list是可变的,因此在tumple中嵌入一个list。这个tumple就是可变的,当然可变的仅仅是list那一部分。

可以这样初始化:

T = (1 , 2 ,[1 , 2])

List的操作函数在这里也同样生效:

1.png

List中的部分操作函数如len()也可在tumple中使用,但是增添修改之类的函数肯定是不可以的了。

三、python内置字典dict

dict是dictionary的缩写,顾名思义是字典的意思。dict是python种的字典,使用key-value的形式存储,查找速度极快。基本定义语法如下:

d = {‘Mike’:95 , ‘Bob’:85 , ‘Tracy’ : 75}

查找时可以通过key来查找,例如:

d[Mike]

查找的就是value的值95。数据放入也使用key的方法:

d[‘Linda’] = 78

一个key只能对应一个一个value,如果多次放入,前面放入的值会被冲掉。

3.1 dict的操作函数

判断:判断一个key是否在dict中,查找时如果查找的key不在dict中,解释器会报错,为了防止程序报错而导致意外终止,在查找之前可以判断key是否在dict中。两种方法:

方法一:

>>>‘Thomas’ in d
False

方法二:

使用get方法,如果不存在,默认返回None,也可以自定义返回结果,用法:

>>>d.get(Thomas)
>>> d.get(Thomas , -1)
-1

删除:

要删除某一个key,可以使用pop(key)方法。

3.2 key值为不可变对象

因为key是不可变对象,所以list不能作为key使用,但是tumple可以作为key来使用:

2.png

四、没有value的dict :set

set和key类似,但是set中不存储value,set中没有重复的key(经过实验dict中也没有重复的key,如果初始化时出现重复的key,前面的key和value会被后面的覆盖)。创建一个set需要提供一个list作为输入集合:

s = set([1,2,3])

如果传入重复的key值,set会自动清除重复元素:

>>>s = set([1,2,1,2,3])
>>>s
{1,2,3}

4.1 set的操作函数

增加:add(key),可以增加重复的元素,但是不会有效果。

删除:remove(key)。

如下图:

3.png

4.2 set的集合运算

set可以看作是数学上无序无重复的集合,因此可以做交、并等运算:

4.png

五、不可变对象操作

对于可变对象如list,可以用函数操作,操作后list内部结构会改变。

6.png

用函数操作不可变对象时,对象内部结构不会改变:

7.png

但是为什么执行函数之后,输出的结果有变化?以下实验可以解释这个问题:

8.png

可以简单的理解为:解释器新开辟一个空间,并且将原对象中的内容复制到新开辟空间且为可变,函数操作之后输出的为新开辟的空间的值。

六、小结

本章一共学习了四种列表:list、tumple、dict、set

List相当于数组,初始化方式:L = [1,2,3,’a’]

Tumple已经初始化就不可改变,初始化方式:t = (1,2,3,’a’),tumple中嵌入的list可变。

dict是python种的内置字典,初始化:d = [‘a’:99 , ’b’:88 , ’c’:77]

set是没有value的字典,初始化方式:s = set([1,2,3])


作者:佚名

来源:百度文库

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 解决脚本录制问题,可以将Fiddler或Charles转换成对应的Jmeter脚本,实现部分内容的参数化配置,通过修改部分参数或参数化可以对http协议的接口进行自动化测试或简单的压力测试GitHub地址https://github.com/dongpengfei826153155/fiddler2jmeter(python实现)操作步骤1.1 打开Fiddler/Charles录制请求1.1.1 Fiddler录制1.1.2 Charles录制1.2 将需要的HTTP请求导出1.2.1 Fiddler导出为saz格式1.2.1 Charles导出为chlsj格式1.3 执行脚本1.3.1 参...
            0 0 2394
            分享
          • 功能测试常规可输入的内容,数字,英文,中文,特殊符号,转义符等;非常规且有一定含义的html标签,css,js代码,url等;输入内容的边界值,空字符,超长文本;长度:最大长度的显示是否正常;是否支持换行;全角半角的字母、数字;字符串前后中带空格,前后的空格是否过滤,中间的空格是否保留;快捷键:能不能全选,部分选择,复制剪切粘贴是否可用,粘贴超过最大长度的字符串怎么显示,table键盘是否可用;兼容性测试根据产品的用户分布,手机品牌,分辨率,topN的机型;根据产品在不同浏览器上的占有率,选择主要的浏览器进行测试;兼容性关注页面的渲染,页面的布局,可以借助firebug测试;稳定性测试在某一压...
            0 0 1675
            分享
          •   QQ、微信聊天框的主要功能就是发送消息和接收别人发过来的消息。  消息内容类型:  ·纯文字  · 纯图片  · 纯表情  · 文字+表情  · 文件  发送键:  · 点击“发送”发送  · 使用快捷键发送(针对电脑端)  用户在线状态:  · 在线状态  · 离线状态  网络情况:  · 网络正常  · 网络异常  群聊情况:  · @功能 :   @个人、@多个人、@全部  · 提醒功能     - 被@到时,进入群聊是否提示“有人@”  &nb...
            0 0 990
            分享
          •   摘要:  依据Jenkins官网介绍,Jenkins是一个流行的开源持续集成和交付工具,它提供了一个可扩展的插件生态系统,可以用于自动化构建、测试和部署软件项目。本文介绍如何安装使用Jenkins、常见问题解决方案以及深入应用,为自动化测试构建铺垫。  安装jdk  1.Jenkins是用Java写的,Tomcat 9.0设计为在Java SE 8或更高版本上运行。下载并安装jdk1.8.1  Javac –version  安装JDK,并配置环境变量:  在系统变量中,设置JAVA_HOME=jdk安装路径,例如C:\program files\Java\jdk,设置Path,新建值=%...
            0 0 1952
            分享
          • 摘要:连续测试意味着您的所有测试一直在执行,从而提供有关应用程序质量和运行状况的连续反馈。为了实现连续测试,您必须首先采用正确的测试自动化策略。了解如何尽可能有效地引入所有不同类型的测试自动化实践,可以使您开始进行连续测试。作为进入市场战略的一部分,企业越来越关注客户体验,而客户体验的关键部分是他们以快速、无缝的方式遍历软件的能力。消费者比以往任何时候都更精通技术,对缺陷的容忍度也较低,因此遭受不良行为影响的应用程序可能会对您的品牌产生极大的负面影响。为了降低这些风险,组织将质量计划加倍,软件开发行业也将持续测试作为主流活动。什么是连续测试?持续测试是软件测试的一项原则,在该原则中,您的所有测...
            0 1 1378
            分享
      • 51testing软件测试圈微信