前言:
本文章供python初学者自学学习,以后的话应该会每周末更新一次,因为本人也是在自学python,所以想借此来分享一波笔记。喜欢的话可以关注一下。
正文:
接上期,我们这章说元组和字典。他们三个(列表、元组、字典)都很类似,可以类比去记忆。
一、元组:
它与列表类似,只不过所有元素都是放在小括号里,相邻元素之间用 “,” 分开。元组的内容也可以是任何数据类型。它与列表最主要的区别就是:元组是不可改变的序列,列表是可以改变的序列。

1.元组的创建和删除
格式:

tuplename = (element1,element2,element3)
参数 含义
tuplename 元组的名称,符合命名规范就可以
element1 元组中的元素,个数没有限制,类型不限

和创建列表类似,只不过把 [ ] 换成(),事是上,我们小括号也是可以省略的,只需要将一组值用逗号分开,它就是元组。
例如:

str1="好好学习","天天向上"
print(str1)      #输出('好好学习','天天向上')

不过有一点要注意的是:
当元组中只有一个元素时,我们需要在元素后面加 “,” 如果不加 ","则该变量类型为字符串类型。
先介绍个函数在举下面的例子
type()可以测试变量类型,括号里直接放入要测变量的名称。

varse1 = ("加油!",)
varse2 = ("加油!")
print("varse1的类型为:",type(varse1))
print("varse2的类型为:",type(varse2))

运行结果如下:

这就是加逗号和不加逗号的区别,区别还是很大的。所以呢,一定要加逗号!!!

2.创建空元组

emptytuple = ()

创建一个名称为 emptytuple 的空元组

3.创建数值元组
这就和列表一样了,用tuple()函数
格式:

tuple(data)

data表示可以转换成元组的数据,其类型可以是range()对象、字符串、元组(可以嵌套)

num=tuple(range(10,20,2))
print(num)       #输出(10, 12, 14, 16, 18)

4.删除元组
格式:

del name       #name为要删除元组的名称

不过python自带垃圾回收机制,所以不需要我们自己删除。

5.访问元组元素
直接用索引来访问
格式:

print(untitle[0])

untitle:表示访问元组的名称。
代码如下:

name = ("张子枫","何炅","黄磊","王源","王俊凯")
print(name[0])

运行结果如下:

当然对于元组也可以采用切片的方式获取指定的元素
例如:

name = ("张子枫","何炅","黄磊","王源","王俊凯")
print(name[:3])

运行结果如下:

从上面两个列子可以看到,当访问元组中单个元素时,输出不包括小括号,如果是字符串的话,输出不带引号,但访问多个元素时,输出不仅带小括号,而且还带单引号。

6.修改元组元素
在文章开头我们说元组不可以修改,那我们现在又要说修改元组元素,好像我是有什么大病似的。但是,我们可以对元组重新赋值。就类似修改元组。举个小例子。

name = ("张子枫","何炅","黄磊","王源","王俊凯")
print(name[:3])
name = (95,69,88,49,83,98,45,68,5,6,46)
print(name[:3])

运行结果如下:

另外,我们可以对元组进行连接组合,我们用 “+” 来进行连接

name = ("张子枫","何炅","黄磊","王源","王俊凯")
print(name)
name = name+(35,65,65,66,98,76,53)
print(name)

运行结果如下:

需要注意的是:元组只能连接元组,不能将字符串、列表等与元组连接在一起。另外呢,当连接的元组只有一个元素时,一定不要忘记在后面加逗号。

7.元组推导式
元组推导式和列表的一样,只不过是把 [ ] 改成 ( ) ,但是还是稍微有一点区别的。
使用元组推导式生成的结果并不是一个元组,而是一个生成器对象,我们要将其转换成元组
转换成元组的函数:tuple()
转换成列表的函数:list()

number = (i for i in range(3))
print(number)
number = tuple(number)
print(number)

运行结果如下:

输出的第一个就是生成器对象,第二个就是生成器对象转换成的元组。
另外,还可以通过for循环来输出

number = (i for i in range(3))
for i in number:print(i,end=" ")
print(number)
number = tuple(number)
print(number)

运行结果如下:

仔细看运行结果,最后一个只输出了一个(),因为for循环遍历后原生成器对象已经不存在了,如果还想在使用生成器对象,都必须在创建一个生成器对象。

二、字典
字典和列表也是类似,但它是无序的可变序列,保存的内容是以 ”键——值对“的形式存放的,就相当于新华字典里面拼音和汉字之间的关系,拼音相当于键,汉字相当于值。

字典特征如下:
1.通过键而不是通过索引来读取
2.字典是任意对象的无序集合
3.字典是可变的,并且可以任意嵌套
4.字典中的键必须唯一
5.字典中的键必须是不可变,可以是元组。

1.字典的创建和删除
形式上,用一个 { } 里面包括键和值分别用 ‘ ’ 括起来,键和值之间用” :“分隔开。
格式:

dictionary = {'key':'value1','key':'value1'}
参数 含义
dictionary 字典名称
key
value1

(1)创建空字典

dictionary = {}
dictionary = dict()

用 dict()的方法不仅可以创建一个空字典,还可以通过已有数据快速创建字典
(2)通过映射函数创建字典
格式:

dictionary = dict(zip(list1,list2))
参数 含义
dictionary 字典名称
zip() 将多个列表或者元组对应位置组合为元组,并返回这些内容的zip对象。如果想得到元组,可以将zip对象使用 tuple()函数转换成元组如果想得到列表,则可使用 list()函数转换成列表
list1 用于指定要生成字典的键
list2 用于指定要生成字典的值,如果 list1和 list2 长度不一,则与最短的列表长度相同

代码如下:

name = ["张子枫","王源","王俊凯"]
sign = ["处女座","天蝎座","处女座"]
dictionary = dict(zip(name,sign))
print(dictionary)

运行结果如下:

(3)通过给定键——值对创建字典

dictionary = dict(key1=value1,key2=value2,key3=value3)
参数 含义
dictionary 字典名称
key 字典的键,必须是唯一的,并且不可变,可以是字符串,数字,或者元组
value 字典的值

例如:

dictionary = dict(张子枫="处女座",王源="天蝎座",王俊凯="处女座")
print(dictionary)

运行结果如下:

关于这个键为什么不带双引号,(个人观点:因为键是不可改变的。我还没有找到可以说服我的原因,知道的大佬可以在评论区说一下)
还可以使用 dict 对象的 fromkeys()方法创建值为空的字典。

dictionary = dict.fromkeys(list1)

参数说明:

参数 含义
dictionary 字典名称
list1 表示字典的键的列表

实例:

name = ["张子枫","王源","王俊凯"]
dictionary = dict.fromkeys(name)
print(dictionary)

运行结果如下:

另外如果想通过已有的列表和元组,创建字典,可以使用以下代码:

name = ("张子枫","王源","王俊凯")
sign = ["处女座","天蝎座","处女座"]
dictionary = {name:sign}
print(dictionary)

运行结果如下:

注意:
字典的键只能是元组。不然会报错。

(4)字典的删除
和列表元组一样,不需要的字典可以用 del 删除

del dictionary

当只想删除字典内的全部元素时,可以使用clear(),字典就会变成空字典。

dictionary.clear()

2.访问字典

(1)通过键访问元素
访问字典是通过键来访问元素的值,但是当你要访问的键不存在,系统就会报出异常。我们给出用条件表达式来解决。

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
print(dictionary["张子枫"] if '张子枫' in dictionary else "字典里没有此人")
print(dictionary["何炅"] if '何炅' in dictionary else "字典里没有此人")

运行结果如下:

(2)通过get()函数访问元素值
格式:

dictionary.get(key,[default])

参数说明:

参数 含义
dictionary 字典名称
key
default 可选项,用于指定当键不存在时,返回一个默认值,如果省略则返回None

示例:

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
print(dictionary.get("张子枫"))
print(dictionary.get("何炅"))
print(dictionary.get("何炅","字典内没有此人"))

运行结果如下:

3.遍历字典
格式:

dictionary = items()

返回值为为可遍历的键值对元组列表,需要通过for循环来遍历该元组列表,如下:

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
for item in dictionary.items():print(item)

运行结果如下:

如果想要获取具体的每个键和值,可以在for循环中设置两个变量

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
for key,value in dictionary.items():print(key,"的星座是",value)

运行结果如下:

4.添加、修改、删除字典元素

(1)添加、修改

dictionary[key] = value

参数说明:

参数 含义
dictionary 字典名称
key 要添加元素的键,必须是唯一的,并且不可变,可以是字符串、数字、元组
value 要添加元素的值,可以是任意数据类型

如果新添加的键与已经存在的键重复,那么将使用新值来替换原来键的值,也就相当于修改操作。
代码如下:

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
dictionary["何炅"] = '金牛座'
print(dictionary)
dictionary["张子枫"] = '水瓶座'
print(dictionary)

运行结果如下:

(2)删除
删除和之前说删除整个字典一样,还是用 del ,但是当删除元素不存在时,系统就会抛出异常。
看代码:

dictionary = {"张子枫":"处女座","王源":"天蝎座","王俊凯":"处女座"}
if "王源" in dictionary:del dictionary["王源"]
print(dictionary)

运行结果如下:

5.元组推导式
这一部分和列表的没有区别,表现形式和列表非常类似,可以参考《Python入门笔记(第五期——序列的应用1)》,要学会举一反三呢!
结合这两篇文章,你应该多少都对列表和、元组、字典都有了解吧!本节内容就到这里了,希望大家总结一下这三者的区别和联系,千万不要搞混掉。

最后喜欢的话关注一下吧!

Python入门笔记(第五期——序列的应用2)相关推荐

  1. 深度学习入门笔记(五):神经网络的学习

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  2. 深度学习入门笔记(五):神经网络的编程基础

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  3. Python 入门笔记6——列表

    Python 入门笔记6--列表 序列 列表 列表的创建 list()创建 range()创建整数列表 推导式生成列表 列表元素的增加 append()方法 +运算符操作 +=运算符操作 extend ...

  4. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  5. python学习笔记(五)缩进

    python学习笔记(五)缩进 原作:http://www.cnblogs.com/vamei/archive/2012/05/29/2524706.html 笔记: #!/usr/bin/env p ...

  6. 机器学习入门笔记(五):决策树

    文章目录 一.决策树模型与学习 1.1 决策树模型 1.2 决策树与 if-then 规则 1.3 决策树与条件概率分布 1.4 决策树的学习 二.特征选择 2.1 信息增益 2.2 例题:利用信息增 ...

  7. 5岁自学python编程-python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹...

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  8. python入门笔记——内置函数作业

    python入门笔记--内置函数作业 # 求三组连续自然数的和:求出1到10,20到30,35到45的三个和 sum1 = sum(range(1,11)) sum2 = sum(range(20,3 ...

  9. python入门笔记之初步了解代码

    # # python入门笔记之初步了解代码 #### 昨日回顾 ##### 操作系统 对计算机:秘书,管家 对人类:提供一个人性化操作台 ##### 三层架构 ```mermaid graph TD ...

  10. python学习笔记(五)---替换函数

    python学习笔记(五)-替换函数 replace()函数替换内容 用法: replace('需要替换的内容','替换后的内容',替换次数) 备:如果需要替换单引号需要加'\' 例子: str = ...

最新文章

  1. 利用yum 安装 lamp环境搭载 cacti监控和memcached数据库
  2. CrackMe-CrackHead
  3. form表单嵌套,用标签的form属性来解决表单嵌套的问题
  4. 【jQuery】选择器
  5. 因为这两天比较忙,所以没有及时把要发表的东西写来.废话少说:我前面把两个简单的滚动说了下.接下来介绍第三种集合循环滚动....
  6. Erlang入门(二)—并发编程
  7. AngularJs ng-repeat限制循环次数
  8. VirtualBox+CentOS6.6安装增强功能包 - Building the main Guest Additions module [失败]
  9. AI进军B-Box界:输入20秒任意声音,还你一段定制的B-Box演奏
  10. mice包--R中数据缺失值的处理
  11. Linux下rpm安装lrzsz
  12. 微信小程序:wx.getUserInfo 接口的变动与使用
  13. 软件设计师考试-计算机网络与网络安全部分的笔记
  14. Oracle P6培训系列:10增加作业并估算工期
  15. 惠普HP CM1312nfi彩色激光打印机硒鼓替代方案
  16. Android中实现微信分享的功能
  17. 计算机网络:应用层 - 万维网 WWW、HTTP 协议以及 HTML 语言
  18. C# Winform鼠标样式设置方法
  19. 利用NEO与Unity制作游戏(第1部分)
  20. VS2005错误 error PRJ0003 生成 cmd.exe 时出错

热门文章

  1. 关于心理的二十五种倾向(查理·芒格)-1
  2. openGL中的抗锯齿实现
  3. Android Room 库基础入门
  4. Class6 基于ECS和NAS搭建个人网盘
  5. SIM800C通讯模块调试
  6. 支持笔锋效果的手写签字控件
  7. 用Xbrowser连接CentOS
  8. 计算机找不到海信电视,海信电视突然看不了电视直播了,怎么解决?当贝市场良心分享...
  9. 第三代CAN-XL通信技术CiA 610有什么特点
  10. Centos 7 环境实现内网服务访问