dict嵌套升级以及作业讲解
嵌套字典:
dic = { 'name':["alex",'wusir','taibai'], 'py9':{ "time":"1213", 'learn_money':19800, 'addr':'CBD' }, 'age':21 }
问题1: 怎样在name的键值对所对应的列表中添加人名:
解:可以现根据索引找到name所对应的列表,再根据列表方法添加
dic["name"].append("ritian") print(dic)
{'name': ['alex', 'wusir', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}, 'age': 56}
问题2:怎样在name所对应的键值对列表中更改‘wusir’为全部大写
解:根据索引找到字典中的列表,列表中的元素,再用upper()方法更改
dic['name'][1] = dic['name'][1].upper() print(dic)
{'name': ['alex', 'WUSIR', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}, 'age': 56}
可以看到,这里使用了:dic['name'][1] = dic['name'][1].upper()
相当于把原来的‘wusir’覆盖。
这是因为字符串方法的upper()是有返回值的,并且不改变原来的字符串,所以要覆盖
dic['name'][1].upper() print(dic)
{'name': ['alex', 'wusir', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}, 'age': 56}
可以看到‘wusir’还是小写
问题3:给py9对应的字典添加一个键值对:'female':6
解:找到相应的键值对,使用updae()方法
dic['py9'].update({"female":6}) print(dic)
{'name': ['alex', 'WUSIR', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD', 'female': 6}, 'age': 56}
也可以使用setdefault(),直接添加的方法进行更改
问题四:
输入任意字符串,测试整数的个数
解;我认为,关键的步骤在于,如何判断字符串内容是否为数字
所以我感觉关键步骤是str.isalnum()方法的使用
while 1: i = input("按下任意键开始,输入'exit'退出") if i == 'exit': break a = [] while 1: j = input("请输入任意字符串") for k in j: if k.isalpha()==True: pass elif k.isalnum() == True: a.append(int(k)) print("整数的个数是",len(a)) break
但是这里有个问题,就是 k.isalpha()==True:和k.isalnum() == True:
对调就会报错
while 1: i = input("按下任意键开始,输入'exit'退出") if i == 'exit': break
a = 1
while 1:
j = input("请输入任意字符串") for k in j: if k.isalnum()==True: a.append(int(k)) elif k.isalpha() == True: pass print("整数的个数是%d",len(a)) break
按下任意键开始,输入'exit'退出asd 请输入任意字符串asd123 Traceback (most recent call last): File "C:/Users/admin/PycharmProjects/untitled1/dict嵌套及升级.py", line 72, in <module> a.append(int(k)) ValueError: invalid literal for int() with base 10: 'a'

浙公网安备 33010602011771号