该系列为南京大学课程《用Python玩转数据》学习笔记,主要以思维导图的记录
4.1 & 4.2 为什么需要字典 & 字典的使用
测验题:字典变成小练习项目
用字典创建一个平台的用户信息(包含用户名和密码)管理系统,新用户可以用与现有系统帐号不冲突的用户名创建帐号,已存在的老用户则可以用用户名和密码登陆重返系统。你完成了吗?
1 | # -*- coding: utf-8 -*- |
字典经典应用编程小例
1、从键盘输入一个英文句子,除单词和空格外句子中只包含“,”、“.”、“’”、“””和“!”
这几个标点符号,统计句子中包括的每个单词(将句中大写全部转换成小写)的词频并将结
果存入字典中并输出。1
2
3
4
5
6
7
8
9if __name__ == '__main__':
out = {}
sentence = input('Please input a sentence:')
words = sentence.lower().split()
for word in words:
if word[-1] in ',.\'"!':
word = word[:-1]
out[word] = out.get(word, 0) + 1
print(out)2、自定义函数 twonums_sum(n, lst),在列表 lst 中查找是否有两数之和等于 n,若有 则返回两数的下标,否则返回-1。对于一个不包含重复数字的有序列表[1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 29, 34, 54, 65],从键盘输入 n,调用函数 twonums_sum()输出满足条件的两个数的下标(找到一组即可且要求其中的一个数尽量小), 若所有数均不满足条件则输出“not found”。
[输入样例]
17
[输出样例]
(1, 10)
1
2
3
4
5
6
7
8
9
10
11
12def twonums_sum(n, lst):
for x in range(len(lst)):
other = n - lst[x]
if other in lst:
return x, lst.index(other)
return 'not found'
if __name__ == '__main__':
lst = [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 29, 34, 54, 65]
two_sum = eval(input('Please input the sum:'))
print(twonums_sum(two_sum, lst))4.3 集合