标签:返回 方法 invalid erro got 需要 做了 默认 lis
补充:以下我们通过4个方面来讲,作用、定义、类型转换、使用。其中作用用我们在基本数据类型中已经提到,不需要再进行称述了。基本数据类型网址: https://www.cnblogs.com/yang1333/p/12411707.html
dic = {'k1': 1, 'k2': 2.3, 'k3': [1, 2, 3]} # dic=dict({'k1': 1, 'k2': 2.3, 'k3': [1, 2, 3]})
print(dic) # {'k1': 1, 'k2': 2.3, 'k3': [1, 2, 3]}
dic = dict(k1=1, k2=2.3, k3=[1, 2, 3])
print(dic) # {'k1': 1, 'k2': 2.3, 'k3': [1, 2, 3]}
info = [
['name', 'egon'],
('age', 18),
['sex', 'male']
]
# 需求:把info中的列表或者元组,第一个值当作字典的key,第二值当作字典的value
# 方式一:
dic = {}
for item in info:
dic[item[0]] = item[1]
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'male'}
# 方式二;基于上面优化
dic = {}
for key, value in info:
dic[key] = value
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'male'}
# 方式三: 最优解,使用dict直接生成(数据类型转换)
dic = dict(info)
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'male'}
li = ['name', 'age', 'sex']
# 需求:快速生成一个字典,把li中的每个值当作字典的key,字典的value默认位0
dic = {}.fromkeys(li, None)
print(dic) # {'name': None, 'age': None, 'sex': None}
dic = {'name': 'egon', 'age': 18, 'sex': 'male'}
# key存在,则修改原值
dic['sex'] = 'female'
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'female'
# key不存在,则创建新值
dic['salary'] = 3.3
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.3}
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.3}
# 注意:统计的是key的个数
print(len(dic)) # 4
# 如果key重复出现,这些重复的key,只会留下一个,留下的那个取决于,谁后来,也就是我们通常所说的赋值操作中key存在,则修改值得操作
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.3, 'salary': 3.2}
print(len(dic)) # 4
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.2}
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.2}
print('name' in dic) # True
print('name' not in dic) # False
print(not 'name' in dic) # False(不推荐使用)
# 1、del
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.2}
# 注意:不支持赋值语法
# x = del dic['name'] # SyntaxError: invalid syntax
del dic['name']
print(dic) # {'age': 18, 'sex': 'female', 'salary': 3.2}
# 2、pop
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.2}
# 注意:与列表的pop操作不一样,这里的pop必须指定参数
# dic.pop() # TypeError: pop expected at least 1 argument, got 0
res = dic.pop('name')
print(dic) # {'age': 18, 'sex': 'female', 'salary': 3.2}
print(res) # egon
# 3、popitem
dic = {'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 3.2}
dic.popitem()
print(dic) # {'name': 'egon', 'age': 18, 'sex': 'female'}
# python2中的键keys()、值values()、键值对items()示例
'''
>>> dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
>>>
>>> dic.keys()
['age', 'name', 'sex']
>>>
>>> dic.values()
[18, 'egon', 'female']
>>>
>>> dic.items()
[('age', 18), ('name', 'egon'), ('sex', 'female')]
'''
# python3中的键keys()、值values()、键值对items()示例
'''
>>> dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
>>>
>>> dic.keys()
dict_keys(['name', 'age', 'sex'])
>>>
>>> dic.values()
dict_values(['egon', 18, 'female'])
>>>
>>> dic.items()
dict_items([('name', 'egon'), ('age', 18), ('sex', 'female')])
'''
dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
# 循环取值取出字典key:for循环与键keys()(鸡肋)
for key in dic:
print(key)
'''
name
age
sex
'''
for key in dic.keys(): # 鸡肋
print(key)
'''
name
age
sex
'''
# 循环取值取出字典key:for循环与值values()
for value in dic.values():
print(value)
'''
egon
18
female
'''
# 循环取值取出字典key:for循环与键值对items()
for key, value in dic.items():
print(key, value)
'''
name egon
age 18
sex female
'''
8、键keys()、值values()、键值对items() + 数据类型转换(把老母鸡转换成列表)
dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
print(list(dic)) # ['name', 'age', 'sex']
print(list(dic.keys())) # ['name', 'age', 'sex']
print(list(dic.values())) # ['egon', 18, 'female']
print(list(dic.items())) # [('name', 'egon'), ('age', 18), ('sex', 'female')]
dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
# 1、dict[key] --> key不存在,报错
# print(dic['salary']) # KeyError: 'salary'
# 2、get ---> key存在,返回None(推荐使用)
print(dic.get('name')) # egon
print(dic.get('salary')) # None
dic = {'name': 'egon', 'age': 18, 'sex': 'female'}
dic.clear()
print(dic) # {}
dic = {'name': 'egon', 'age': 18}
res = dic.update({'name': 'alex', 'salary': 3.3})
print(res) # None
print(dic) # {'name': 'alex', 'age': 18, 'salary': 3.3}
dic = {'name': 'egon', 'age': 18}
# key存在,返回原值
res = dic.setdefault('name', 'alex')
print(res) # egon
print(dic) #{'name': 'egon', 'age': 18}
# key不存在,返回添加的值
res = dic.setdefault('salary', 3.3)
print(res) # 3.3
print(dic) # {'name': 'egon', 'age': 18, 'salary': 3.3}
if True:
pass
if True:
...
标签:返回 方法 invalid erro got 需要 做了 默认 lis
原文地址:https://www.cnblogs.com/yang1333/p/12464030.html