Python学习(四) 字典和集合

首先对变量的类型来进行分类 :

变量可不可变 :

  • 判断标准 :修改变量的内容后,如果变量的ID号发生变化,那么变量为不可变类型,否则的变量为可变类型
  • 可变 : 列表 , 字典
  • 不可变 : 字符串 ,数字 , 元组

变量的访问顺序 :

  • 顺序访问 :字符串 列表 元组
  • 映射 : 字典

特别注意 :

  1. 字典的查找速度比列表,元组快,但是占用内存高
  2. 容器 : 列表,元组 ,字典
  3. 原子 : 字符串 数字

字典

  1. 字典是一种可变式的容器,存取的对象是任意的。
  2. 字典的每一个元素都由一对键值对组成。(key=>value)
  3. key和value之间用:分隔,元素和元素之间用逗号隔开。
  4. value的取值可以是任意类型的,但key必须是不可变的,如字符串,数字和元组

字典展示 :

dict = {"key1":"value1" , "key2":"value2"}

访问字典里面的值 :

 alien_0 = {'color':'green',
            'point': 5
            }
 print(alien_0['color'])
 print(alien_0['point'])   ### 打印只能通过 键值 来进行寻找

特别注意 :

 字典的存取是无序的,二列表和元组的存取是有序的,因此可以通过索引(0、1、2····)来寻找里面的值
 而字典是杂乱无章的,要想找到里面的值就必须找到里面的这个key,

遍历获取获取的是字典中的key:

for it in favorite_language :
    print(it)
######  运行结果  ########
jen
sarah
edward
phil

修改字典 :

添加字典元素 :

# # ###   添加键值对,直接对新的键值进行赋值
 print(alien_0)
 alien_0['x_position'] = 0
 alien_0['y_position'] = 25
 print(alien_0)

# ###  先创建一个空字典,再逐一添加键值对进入字典
 alien_0 = {}
 alien_0["color"] = "green"
 alien_0["points"] = 5
 print(alien_0)

修改字典中的值 :

# ###  修改字典中的值
 alien_0 = {"color" : "green"}
 print("The alien is " + alien_0["color"] + ".")

 alien_0["color"] = "yellow"
 print("The alien is now " + alien_0["color"] + ".")
###  外星人位移变化
 alien_0 = {"x_position" : 0, "y_position" : 25, "speed" : "medium"}
 print("Original x-position :" + str(alien_0["x_position"]))
 if alien_0["speed"] == "slow" :
     x_incarment = 1
 elif alien_0["speed"] == "medium" :
     x_incarment = 2
 else :
     x_incarment = 3
 alien_0["x_position"] = alien_0["x_position"] + x_incarment
 print("New x-position : " + str(alien_0["x_position"]))
 print(alien_0)

删除字典元素 :

 alien_0 = {"color" : "green" , "points" : 5}
 print(alien_0)
 del alien_0["color"]
 print(alien_0)
##############  通过Key值来进行删除    #################

格式问题 :

##  1 列表可以打成表格形式
##  2 打印函数也可以,分段打印
######    由类似对象组成的字典
favorite_language = {
    "jen" : "python",
    "sarah" : "C",
    "edward" : "ruby",
    "phil" : "java",
    }

 print("sarah's favorite language is " +
       favorite_language["sarah"].title() +
       ".")

使用sort()进行排序遍历 :

# #####   使用sort()按顺序进行遍历
 for name in sorted(favorite_language.keys()) :
     print(name)

遍历所有能的value :

# #####   遍历里面所有的值
 print("The follow languages have been mentioned: ")
 for language in favorite_language.values() :
     print(language.title())

字典的常用方法 :

  get() 返回指定键的值,如果值不在字典中,返回default值

     has_key() 如果键在字典中,返回true,否则返回false

     items() 以列表返回可遍历的(键值)元组数组

     keys() 以列表返回一个字典所有的键

     setdafault() 添加键值到字典中

     update() 把字典的键值对更新到dict里

     values() 以列表返回字典中的所有值

     cmp(dict1,dict2) 比较两个字典元素

     len(dict) 计算字典元素个数,即键的总数

     str(dict) 输出字典可打印的字符串表示

     type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型
  • 字典'浅复制'之后,对于新旧字典是单独存在
  • 字典“深复制”,采用 from copy import deepcopy 
  • 在原文件时,复制后的文件也会发生改变

集合是一种类似列表,但不能存在重复的容器 :

####   使用集合去除其中的重复元素
 for name in set(favorite_language.values()) :
     print(name.title())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值