字典:解决映射问题而存在
In[1]: var = {} # 定义空字典形式1
var = dict() # 定义空字典形式2
type(var)
Out[1]:dict
In[2]:var = { # 字典的写法
'中': 100,
'左': 200
}
# 获得'中'对应100的这个页码,比方式2简单很多
In[3]:var['中']
Out[3]:100
# 取对应页码方式2(比上面方式繁琐)
In[4]:words = ['中', '左']
location = [100, 200]
location[words.index('中')] Out[4]:100
# 拉锁函数
In [5]: list(zip(words, location)) #zip转化为列表
Out[5]:[('中', 100), ('左', 200)] #产生有对应关系的嵌套关系的一个列表,每个列表的元素为一个元组,元组包含2个值
In[6]:new_var = list(zip(words, location))
In[7]:dict(new_var) #转化为想要的字典
Out[7]:{'中': 100, '左': 200}
In[8]:list(zip([1,2],[3,4,1],[4,4,6]))
Out[8]:[(1, 3, 4), (2, 4, 4)]
In[9]:list(zip([1,2,4],[3,4,1],[4,4,6]))
Out[9:[(1, 3, 4), (2, 4, 4), (4, 1, 6)]
students = ['sun','li','zhao','qian'] In [10]:dict.fromkeys(students, 10) #生成字典便捷的函数fromkeys Out[10]:{'li': 10, 'qian': 10, 'sun': 10, 'zhao': 10} #每个元素给一个初始化的值
访问字典中的值
In [11]:money['sun']
Out[11]:10
In [12]:money.get('li')
Out[12]:10
In [13]:a = money.get('jin') #若访问的值不存在,则返回空值
print(a)
Out[13]:None
In [14]:a = money.get('jin', 100) #若访问的值不存在,返回给定的一个值
print(a)
Out[14]:100
In [15]:money.keys() #返回姓氏
Out[15]:dict_keys(['li', 'qian', 'sun', 'zhao'])
In [16]:money.values() #返回姓氏对应的值
Out[16]:dict_values([10, 10, 10, 10])
In [17]:money.items() #返回列表
Out[17]:dict_items([('li', 10), ('qian', 10), ('sun', 10), ('zhao', 10)])
In [18]:money.pop('sun') #删除操作 Out[18]:10 In [19]:money Out[19]: {'li': 10, 'qian': 10, 'zhao': 10} In [20]:money['sun'] = 100 #增加操作 money Out[20]:{'li': 10, 'qian': 10, 'sun': 100, 'zhao': 10}
In [21]:money.setdefault('jin', 1000) #赋值操作, 若存在,返回存在的值,若不存在,则赋值 Out[21]:1000 In [22]:money Out[22]:{'jin': 1000, 'li': 10, 'qian': 10, 'sun': 100, 'zhao': 10}