元组(tuple)

元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可。与列表不同的是,元组的元素不能修改。如下代码所示:

tup1 = ()
tup2 = (1)
tup3 = (1,)
tup4 = ('test', 1, False)
tup5 = (1, 2, 3, 4, 5)
tup6 = "a", "b", "c", "d" print(type(tup1))
print(type(tup2))
print(type(tup3))
print(type(tup4))
print(type(tup5))
print(type(tup6))

上面代码将输出如下内容:

<class 'tuple'>

<class 'int'>

<class 'tuple'>

<class 'tuple'>

<class 'tuple'>

<class 'tuple'>

通过输出内容我们发现只有tup2类型是整型,其余都是元组。这是为什么呢?如果小括号里只有一个元素时,请在后面加上“,”,才能表示元组。tup6虽然没有用(),但是也是元组一种特殊的写法。

操作元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。我们可以对元组进行相关操作。如下代码所示:

a = (1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA'])
print("通过索引方式访问元组第1个元素:", a[0])
print("通过索引方式访问元组第2个元素:", a[1])
print("通过索引方式访问元组第3个元素:", a[2])
print("通过索引方式访问元组第4个元素:", a[3])
print("通过索引方式访问元组第5个元素:", a[4])
print("通过索引方式访问元组第6个元素:", a[5])
print("用负数访问方式,元组第6个元素为:", a[-1])
print("用负数访问方式,元组第5个元素为:", a[-2]) print("元组第2个元素到第6个元素,步长为2:", a[1:5:2])
print("倒数第2个数到最后:", a[-2:])
print("元组第6个元素是一个列表,访问嵌套列表第1个元素:", a[5][0])

上面代码将输出如下内容:

通过索引方式访问元组第1个元素: 1

通过索引方式访问元组第2个元素: test

通过索引方式访问元组第3个元素: 你好

通过索引方式访问元组第4个元素: 3

通过索引方式访问元组第5个元素: False

通过索引方式访问元组第6个元素: [2, 3, 'CHINA']

用负数访问方式,元组第6个元素为: [2, 3, 'CHINA']

用负数访问方式,元组第5个元素为: False

元组第2个元素到第6个元素,步长为2: ('test', 3)

倒数第2个数到最后: (False, [2, 3, 'CHINA'])

元组第6个元素是一个列表,访问嵌套列表第1个元素: 2

集合(set)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式

set1 = {value1,value2,...}

或者

set(value)

我们可以对元组进行相关操作。如下代码所示:

name = {'testDog', 'Jim', 'Mary', 'Jim', 'Jack', 'Rose'}

print(name)  # 输出集合,重复的元素被自动去掉

# 成员测试
if 'testDog' in name:
print('testDog 在集合中')
else:
print('testDog 不在集合中') # set可以进行集合运算
a = set('testDogDog')
b = set('test')
c = {} print(a)
print(b)
print(type(c))
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素

上面代码将输出如下内容:

{'Mary', 'Rose', 'testDog', 'Jack', 'Jim'}

testDog 在集合中

{'t', 'e', 'g', 's', 'o', 'D'}

{'t', 's', 'e'}

<class 'dict'>

{'D', 'o', 'g'}

{'t', 'e', 'g', 's', 'o', 'D'}

{'t', 's', 'e'}

{'o', 'g', 'D'}

注意:因为集合是无序的,所以你输出的结果顺序可能与笔者不一致,并不是错误,如果定义一个空{},类型将为字典

字典(dict)

列表是有序的对象集合,字典是无序的对象集合。字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。如下代码所示:

a = {"code": "10000", "result": 1, "status": 1, "text": "操作成功"}
print("取code的值", a["code"]) print("输出所有键", a.keys())
print("输出所有值", a.values())

上面代码将输出如下内容:

取code的值 10000

输出所有键 dict_keys(['code', 'result', 'status', 'text'])

输出所有值 dict_values(['10000', 1, 1, '操作成功'])

小结:数据类型主要有数字、字符串、列表、元组、集合、字典。笔者将通过思维导图找出这些数据类型共通点和不同点,方便记忆。如下图所示:

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

5. Python数据类型之元组、集合、字典的更多相关文章

  1. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  2. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  3. python数据类型:元组

    python数据类型:元组 python的元组与列表类似,但是元组的元素不能修改 元组使用小括号,列表使用大括号 元组创建简单,只需要在括号中添加元素,使用逗号隔开 创建元组: tup1 = (50, ...

  4. python基础之数据类型/字符串/元组/列表/字典

    Python 数据类型 数字类型: int整型,long 长整型(在python3.0里不区分整型和长整型).float浮点型:complex复数(python中存在小数字池:-5--257):布尔值 ...

  5. python中的数据类型之元组和字典

    一.元组:俗称不可变的列表,又被称为只读列表.元组用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以,但就是不能修改. 注意:如果元组中只有一个元素,一定要加一个逗号,否则 ...

  6. Python 列表、元组、字典及集合操作详解

    一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...

  7. python列表、元组、字典、集合的简单操作

    一.列表.元组 1.常用操作函数 #Author:CGQ import copy #列表 ''' names=["ZhangYang","XiaoHei",&q ...

  8. python列表,元组,字典,集合的比较总结

    这四个都是python中的序列,用于存放数据,他们区别总结如下:   列表list 元组tuple 字典dictionary 集合set 是否可变 可变 不可变 可变 可变 是否有序 有序 有序 无序 ...

  9. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝

    一.深浅拷贝 1.  值拷贝 ls1 = ls2  不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,l ...

  10. Python:Day06 元组、字典、字符串

    tuple(元组) 元组被称为只读列表,即数据可以被查询,但不能被修改,所以列表的切片操作同样适用于元组. 元组写在( )里,元素之间用逗号隔开. tul1 = ( ) #空元组 tul2 = (20 ...

随机推荐

  1. 用 Flask 来写个轻博客 (6) — (M)VC_models 的关系(one to many)

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 前言 一对多 再一次 sync db How to use ...

  2. winform DataGridView的虚模式填充,CellValueNeeded事件的触发条件

    虚模式填充常用来处理大量数据,某个字段的显示问题. DataGridView是.net 2.0新增的表格数据编辑和显示控件,简单的数据显示和编辑,只需直接和数据源绑定就可以了. 对于 一些特殊情况,我 ...

  3. cannot find module node-sass

    解决方法: npm install --save-dev node-sass

  4. Django框架(二十七)—— ContentType组件

    目录 ContentType组件 一.什么是ContentType组件 二.使用ContentType 三.使用场景总结 ContentType组件 一.什么是ContentType组件 conten ...

  5. UVA1595_Symmetry

    给出平面上n个点,问你能不能找到一个竖线让他们对称 这道题后面发现真的不难,又不止一种方法 我当时写的很挫,死脑筋的就找一个点的对称点存不存在,用结构体存点信息,在排序用find找,,然后不知道一堆w ...

  6. 关于软件IntelliJ IDEA的使用技巧(一)

    一,IntelliJ IDEA的下载 点击网址http://www.jetbrains.com/idea/进入官网,点击Download 会出现如下页面 点击Ultimate下的Download,下载 ...

  7. js转义符

    \0 :null(\u0000) \b :后退键(\u0008) \f :换页符(\u000C) \n :换行符(\u000A) \r :回车键(\u000D) \t :制表符(\u0009) \v ...

  8. shell egrep 引号

    [jg73178@hdcgcgdbsla01dv ~]$ egrep \'SI\' tt.txt 'SI' [jg73178@hdcgcgdbsla01dv ~]$ egrep \"SI\& ...

  9. createReadStream().pipe() Callback

    const stream = fs.createReadStream('<filepath>/example.pdf', {bufferSize: 64 * 1024}) stream.p ...

  10. glog 与 zlog

    1.linux 源码调用 2.log 3级 info error debug 3.调用便利性 4.配置文件 动态加载 5.输出 log 文件 (大小 时间) 6大批量写入 (100条一次写入) 7设置 ...