Python-05字典、集合、序列

参考学习文章:
https://github.com/datawhalechina/team-learning-program/blob/master/PythonLanguage/09.%20%E5%AD%97%E5%85%B8.md

一、字典

序列是以连续的整数为索引,以“关键字”为索引、关键字可以是任意不可变类型
字典是 Python 唯一的一个 映射类型,字符串、元组、列表属于序列类型
数据类型

  • 可变类型
  • 不可变类型
    可以用id(x)函数或者是hash(x)判断一个数据类型x是不是可变类型
    id(x):x进行操作,id前后不一致,x不可变;一致的话,x可变
    hash(x):可哈希,不可变;不可哈希,可变
i=1
print(id(i))
i = i + 2
print(id(i))
hash(i)
#i可哈希,不可变
hash(i),hash(1),hash('abc'),hash((1,2,3))
hash([1,2,3])

在这里插入图片描述

  • 数值、字符和元组 都能被哈希,因此它们是不可变类型。
  • 列表、集合、字典不能被哈希,因此它是可变类型。

字典
无序键:值key:value对,键相互不同

dic1 = {1: 'one', 2: 'two', 3: 'three'}
dic=dict() # 空字典
dic['a']=1

#创建新字典dict.fromkeys(seq[, value]),以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
seq = ('name', 'age', 'sex')
dic3 = dict.fromkeys(seq, ('小马', '8', '男'))

键只能为字符串类型,并且创建的时候字符串不能加引号,加上就会直接报语法错误。

dic = dict(name='Tom', age=10)
print(dic)  # {'name': 'Tom', 'age': 10}

#dict.keys()返回一个可迭代对象,可以使用 list() 来转换为列表,列表为字典中的所有键;
#dict.values()返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值
dic = {'Name': 'lsgogroup', 'Age': 7}
print(dic.keys())  # dict_keys(['Name', 'Age'])
lst = list(dic.keys())  # 转换为列表
print(lst)  # ['Name', 'Age']

print(list(dic.values()))

#dict.items()以列表返回可遍历的 (键, 值) 元组数组
print(list(dic.items()))

#dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值。
dic = {'Name': 'Lsgogroup', 'Age': 27}
print("Age 值为 : %s" % dic.get('Age'))  # Age 值为 : 27

#dict.setdefault(key, default=None)和get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
print("Age 键的值为 : %s" % dic.setdefault('Age', None))  # Age 键的值为 : 7

#key in dict in
if 'Age' in dic:
	pass
if 'Age' not in dic:
	pass

#dict.pop(key[,default]),del dict[key],dict.popitem(),dict.clear(),dict.copy(),dict.update()
#直接赋值和 copy 的区别:直接赋值是引用对象,dict.copy()浅拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用

练习
1.

dic = {'python': 95,'java': 99,'c': 100}

#字典的长度是多少
j=0
for i in dic:
    j+=1
print("字典的长度是:",j)
dic['java']=98 # 修改'java' 这个key对应的value值为98
del dic['c'] # 删除 c 这个keyc
dic['php']=90  # 增加一个key-value对,key值为 php, value是90
print(dic)
k=list(dic.keys()) # 获取所有的key值,存储在列表里
print(k)
v=list(dic.values()) # 获取所有的value值,存储在列表里
if 'javascript' in dic:  # 判断 javascript 是否在字典中
	print(' javascript 在字典中')
else:
	print(' javascript 不在字典中')

#字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中
dic1= {'php': 97}
dic.update(dic1)
print(dic)
在这里插入代码片

二、集合

三、序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值