【Python】数据类型之元组和字典

举报
向阳花花花花 发表于 2023/07/28 16:07:24 2023/07/28
【摘要】 本文给大家带来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))

1.2 访问和修改元组

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

# 元组中的元素值不可以修改,但是我们可以对元组进行连接组合
tup1 = (1,2,"Jack")
tup2 = ("marry",232)
tup3 = tup1+tup2
print(tup3) # 元组连接

# 元组中的元素不允许删除
tup4 = ("work",233)
print(tup4)
del tup4
# print(tup4) # 报错

1.3 内置函数

二、字典(dict)

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

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

2.1 字典的创建

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

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) 报错

2.3 字典键的特性

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

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

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

2.4 函数与方法

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




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

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)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。