Python | 数据类型之元组和字典

简介: Python | 数据类型之元组和字典

一、元组(tuple)


Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。


1.1 元组的创建


tup1 = ()  # 创建一个空元组
print(type(tup1))
tup2 = (2)  # 创建一个只有一个元素的元组时,需要在元素后添加逗号,否则python认为是int类型
print(tup2)
print(type(tup2))
tup3 = (2,)
print(tup3)
print(type(tup3))  # 元组
tup4 = 1, 2, 3  # 任意无符号的对象,以逗号隔开,默认为元组
print(type(tup4))


279617c01cc540ac8c7108977f940d03.png

1.2 访问和修改元组

tup1 = ("com", "carry", 12, 0)
print(tup1[1]) # 访问第二个元素
print(tup1[:2])  # 从第一个元素截取到第二个元素
print(tup1[1:3])  # 从第2个元素截取到第3个元素
print(tup1[1:])  # 从第一个元素开始截取到最后


19909611ad8041a7820d2033684fb7dc.png

# 元组中的元素值不可以修改,但是我们可以对元组进行连接组合
tup1 = (1,2,"Jack")
tup2 = ("marry",232)
tup3 = tup1+tup2
print(tup3) # 元组连接
# 元组中的元素不允许删除
tup4 = ("work",233)
print(tup4)
del tup4
# print(tup4) # 报错


73efe17838724dcabfb6bdc48699c0d4.png


1.3 内置函数

e96738066abf4c65a787a2e9701884a2.png


二、字典(dict)


字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,类似于JSON


2.1 字典的创建


dict1 = {"name": "xiaoguo", "pwd": 123}
print(dict1)
print(type(dict1))


4fa1132a06564c0ab5e4dd3236fd10b9.png

2.2 访问和修改字典

# 1.访问字典dict的值
print(dict1.get("name"))  # 通过get()方法,如果没有这个键,返回None
print(dict1["name"])  # 通过[键],如果没有这个键,就会报错
# 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
# 2.修改字典
dict1["name"] = "XiaoGuo" # 修改
dict1["id"] = 1 # 当键不存在时赋值,就是添加
print(dict1)
# 4.删除字典元素
del dict1["id"] #删除id
print(dict1)
dict1.clear() # 清空所有键值对,使字典变成空
print(dict1)
del dict1 # 删除字典
# print(dict1) 报错

d025899fb1014883929940b4377728c5.png


2.3 字典键的特性


(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,仅后一个值会被记住。

(2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。

dict2 = {"name": 123, "name": 321}
print(dict2["name"])  # 只会记住后面的值
# 字典的键必须是不可变的,可以是数字,字符串,元组,但是不能是字典
dict3 = {1: 1, "name": "xiaoguo", (1,): 3}
print(dict3[(1,)])

d9178c2cbcd14741bc672df087bfc2e7.png

2.4 函数与方法


8c59fe749f8d46df81b4a33c0c37c974.png

print("字典是:%s"%str(dict3))

b485b580303e49d8a8aff6888049bfd7.png


f7dbf23fa90a41fabe1f409eb6f6fd5b.png

2fce79851f1e4221bf5ae64e8af8b95a.png

dict1 = {"name": "xiaoguo", "pwd": 123}
dict2 = {"name": "xiaoguo", "pwd": 123}
# 1.clear
print("clear之前:%s" % str(dict1))
dict1.clear()
print("clear之后:%s" % str(dict1))
# 2. copy()
dict2_1 = dict2.copy()
print("copy自dict2:%s" % str(dict2_1))
# 3.fromkeys
print("不设置val,默认值为None:%s" % (dict.fromkeys(dict2)))
print("设置val,默认值为10:%s" % (dict.fromkeys(dict2, 10)))
# 4.get()
print(dict2.get("names"))  # 如果字典中没有这个键,返回None
# 5.has_key->python3中这个方法被contains替代
print(dict2.__contains__("name"))
# 6.items() items() 方法把字典中每对 key 和 value 组成一个元组,并把这些元组放在列表中返回
print(dict2.items())
for key, value in dict2.items():
    print("key:%s,value:%s" % (key, value))

8b70adf030b54d898a9a30aeab004fb6.png

dict1 = {"na":1,"nb":2}
dict2 = {"nc":3}
# 7.keys()
print("所有键:%s"%str(dict1.keys()))
# 8.setdefault # 设置为None,不是default
print("设置键:%s"%str(dict1.setdefault("names")))
print(dict1)
# 9.update # 添加/修改
dict1.update(dict2)
print("添加键值:%s"%str(dict1))
# 10.values
print("所有值:%s"%str(dict1.values()))
# 11. pop()
print(dict1.pop("na"))
# 12.popitem()
print(dict1.popitem())
print(dict1)

cfd63cb268de461f9c50b5df44677b8d.png


相关文章
|
10天前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
46 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
13天前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
9天前
|
存储 程序员 Python
Python编程入门:探索变量和数据类型
【10月更文挑战第8天】本文是针对初学者的Python编程入门指南,重点介绍Python中变量的定义和使用以及不同的数据类型。我们将通过实例来理解基本概念,并展示如何在Python程序中应用这些知识。文章旨在帮助初学者建立扎实的基础,使他们能够更自信地编写Python代码。
|
11天前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
23 0
|
14天前
|
存储 自然语言处理 数据库
Python字典操作实现文章敏感词检索
Python字典操作实现文章敏感词检索
11 0
|
14天前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
18 0
|
9天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
|
3天前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####
|
10天前
|
机器学习/深度学习 数据采集 数据挖掘
探索Python编程的奥秘
【10月更文挑战第7天】本文将带你走进Python的世界,探索其背后的逻辑与魅力。我们将从基础语法开始,逐步深入到函数、面向对象编程等高级特性,最后通过实际项目案例,让你体验Python的强大与便捷。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启发。
|
11天前
|
IDE 开发工具 Python
Python 编程入门:打造你的第一个程序
【10月更文挑战第6天】编程,这个听起来高大上又充满神秘感的领域,其实就像学习骑自行车一样。一开始你可能会觉得难以掌握平衡,但一旦你学会了,就能自由地穿梭在广阔的道路上。本文将带你走进 Python 的世界,用最简单的方式让你体验编写代码的乐趣。不需要复杂的理论,我们将通过一个简单的例子——制作一个猜数字游戏,来实践学习。准备好了吗?让我们开始吧!