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.练习

  1. 请输出字典内所有的键与值,并让用户输入键,输出值
#请输出字典内所有的键与值,并让用户输入键,输出值
info = {"name":"yanan","age":18,"gender":"男","hobby":"女"}
for k,v in info.items():
    print(k,v)
while True:
    user = input("请输入键:")
    print(info[user])
  1. 给空字典中增加键值对
#给空字典中增加键值对
info = {}
info["k1"] = 1
info["k2"] = 2
info["k3"] = 3
print(info)
  1. 给一个空字典,请让用户输入三次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
posted @ 2019-09-25 19:24  薛定谔的猫儿  阅读(215)  评论(0编辑  收藏  举报