首先对变量的类型来进行分类 :
变量可不可变 :
- 判断标准 :修改变量的内容后,如果变量的ID号发生变化,那么变量为不可变类型,否则的变量为可变类型
- 可变 : 列表 , 字典
- 不可变 : 字符串 ,数字 , 元组
变量的访问顺序 :
- 顺序访问 :字符串 列表 元组
- 映射 : 字典
特别注意 :
- 字典的查找速度比列表,元组快,但是占用内存高
- 容器 : 列表,元组 ,字典
- 原子 : 字符串 数字
字典
- 字典是一种可变式的容器,存取的对象是任意的。
- 字典的每一个元素都由一对键值对组成。(key=>value)
- key和value之间用:分隔,元素和元素之间用逗号隔开。
- 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())