python笔记(4)--数据类型(字典)
数据类型(字典)
内容目录:
- 字典
内容和回顾:
-
int
- py2/py3的区别
- 除法
- 强制转换
- int("字符串") 【重要】
- int(布尔值)
-
bool
v1 = bool(0) v2 = bool("") v3 = bool([]) v4 = bool(()) print(v1,v2,v3,v4) #全部为False,其他都为True
-
str
-
独有功能:upper / lower / split / strip / replace / isdigit / startswith / endswith / format / encode
-
公共功能:
- len
- 索引
- 切片
- 步长
- for循环
- 不支持删除 / 更新
-
强制转换:
-
str(999) #转变为字符串类型"999"
-
str(True) #转变为字符串类型"True"
-
str(["洛阳","长安"])
str(["洛阳","长安"]) #结果为"["洛阳","长安"]" #如果想取里面的值,可以使用: v2 = "".join(["洛阳","长安"]) #结果为"洛阳长安"
-
-
-
list
-
独有功能:append / insert / pop / remove / clear / extend
-
公共功能:
- len
- 索引
- 切片
- 步长
- for循环
- 删除
- 更新
-
强制转换:
-
字符串转换列表:
v1 = list("asdfasdfasf") print(v1) #结果为['a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'f']
-
元组转换为列表:
v1 = list((11,22,33)) print(v1) #结果为[11, 22, 33]
-
-
-
tuple
-
独有功能:无
-
公共功能:
- len
- 索引
- 切片
- 步长
- for循环
-
强制转换:
-
字符串转换元组
v1 = tuple("asdfasdfasf") print(v1) #结果为('a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'f')
-
列表转换元组
v1 = tuple([11,22,33,44]) print(v1) #结果为(11, 22, 33, 44)
-
-
-
总结:
- 常见的类型转换
#字符串转数字 str转int #数字转字符串 int转str #列表转元组 list转tuple #元组转列表 tuple转list #其他转布尔时,只有:0 "" [] ()为False 其他都为True
- 练习题
- 注意使用字符连接的时候,join内必须是字符串
#将nums使用"_"连接起来 nums = [11,22,33,44] for i in range(0,len(nums)): #取下标 nums[i] = str(nums[i]) #将nums内所有元素转为str类型 v1 = "_".join(nums) print(v1) #结果为11_22_33_44
今日内容:
1.字典:dict
- 帮助用户去表示一个事物的信息(事物是多个属性)(无序的)
- 字典内键没有重复的,最后的值会覆盖掉之前重复的值,键可以被哈希
- 字典内值可以重复
# info = {键:值,键:值,键:值,键:值,键:值,键:值}
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"} #键值
info['name'] #取出'yanan'
info['age'] #取出18
独有功能:
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
info.keys() #取出键
for item in info.keys():
print(item) #输出为:name age gender hobby
info.values #取出值
for val in info.values():
print(item) #输出为:yanan 18 男 女
info.items #取出所有键值对
for v1,v2 in info.items():
print(v1,v2)
'''输出:
name yanan
age 18
gender 男
hobby 女 '''
公共功能:
len
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
print(len(info)) #输出结果为 4
索引
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
info["name"]
info["age"]
for
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
for k,v in info.items():
print(k,v) #取出k为键,v为值
for val in info.items():
print(val) #输出为由键值组成的元组
"""
('name', 'yanan')
('age', 18)
('gender', '男')
('hobby', '女')
"""
修改/添加
- 只能改值,无法改键
- 如果想改键,则删除该键值,重新添加
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
info["age"] = 19
print(info)
删除
- del info["键"] #删除该键值对
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
del info["name"]
print(info)
特性:
数据类型嵌套
- 字典可以嵌套str / int / bool / list / tuple / dict
键值对不可重复
无序(3.6版本后为有序)
- 有序:元组 / 列表
- 无序:字典(py3.6之后字典为有序)
2.练习
- 请输出字典内所有的键与值,并让用户输入键,输出值
#请输出字典内所有的键与值,并让用户输入键,输出值
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
for k,v in info.items():
print(k,v)
while True:
user = input("请输入键:")
print(info[user])
- 给空字典中增加键值对
#给空字典中增加键值对
info = {}
info["k1"] = 1
info["k2"] = 2
info["k3"] = 3
print(info)
- 给一个空字典,请让用户输入三次key和value,然后打印该字典。如输入key的值开头有“N”,中止输入,打印字典
info = {}
for i in range(0,3):
key = input("请输入key:")
if key.startswith("N"):
break
val = input("请输入value:")
info[key] = val
print(info)
重点
- int
- str
- bool
- list
- tuple
- dict