Python-字典题目
1.字符串去重排序
描述:输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。
m=input('')
n=list(set(list(m)))
n=sorted(n,reverse=False)
print(''.join(n))
2.加密字符串
描述:
密码对照表的第一行为明码行,放置大写字母表(如下表第一行所示。)
第二行为按照以下规则生成的密码行:
给定一个单词,将单词中所有字符转为大写字母,对于单词中重复出现的字母,保留第一次出现的,删除之后重复出现的该字符。
用剩余字母组成秘钥从密码行的开始位置放置;再用未在秘钥中出现的其他大写字母按字母表顺序依次填充密码行剩余位置。
例如:给定单词“HelloPython”,删除其中重复出现字母后得到秘钥“HELOPYTN”,将秘钥依次填入密码行最开始的位置,再用未在秘钥中出现的其他大写字母按字母表顺序依次填充密码行的剩余位置,最终得到密码行(如下的第二行所示)
密码对照表
ABCDEFGHIJKLMNOPQRSTUVWXYZ
HELOPYTNABCDFGIJKMQRSUVWXZ
输入一个字符串,将其中所有字母转为大写字母,依照明码密码对照表对其做加密处理,输出加密后的密文字符串。
输入格式
输入有两个:
输入一个字符串做秘钥
输入一个需要加密的符串
输出格式
输出加密后的密文字符串
import string
upperLetter = string.ascii_uppercase
s = input().upper()
code = list(set(upperLetter) - set(s))
code.sort()
ls = list(set(s))
ls.sort(key = s.index)
keys = ''.join(ls + code)
decode = input().upper()
table = ''.maketrans(upperLetter, keys)
print(decode.translate(table))
3.数据统计
描述:
输入两个整数,在这两个整数组成的闭区间范围内生成100个随机整数,并统计出现数据的次数。为满足评测需要,程序必须使用seed函数将随机种子设为10,并使用randint函数生成随机数。
输入格式
一行当中输入两个整数,以空格间隔。题目保证两个整数从小到大
输出格式
按照生成随机数从小到大的顺序,每行输出一个生成的整数以及其出现的次数,以空格间隔。
import random
a, b = eval(input().replace(' ', ','))
random.seed(10)
dic = {}
for each in range(100):
num = random.randint(a, b)
dic[num] = dic.get(num, 0) + 1
for key, value in sorted(dic.items(), key=lambda d:d[0]):
print(key, value)
4.列表去重
描述:
输入一系列以逗号分隔的英文人名,其中包含重复的名字,请将其中重复的名字去掉,输出包含不重复人名的列表,名字出现顺序与输入顺序相同。
list1 = list(input().split(","))
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
5.通讯录(删除)
描述:
模拟通讯录的数据删除功能。
通讯录中信息包括:姓名,电话,所在学院。
字典的初始化信息及用户界面函数:(直接复制到程序中)
def menu():print('''\n欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存''')dic={'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
要求编写程序
输出字典原始数据,再调用menu函数输出用户选择界面,等待用户输入:
(1)输入‘2’ 进行删除学生,输入姓名,如果该姓名已存在,则删除该学生的信息,并输出“Success”的提示信息,如果不存在,给出“No Record”提示信息。
无论是否删除成功,结束后需要输出操作后的字典数据。
(2)如果输入其他选项,无需输入姓名,直接输出“ERROR”。
def menu():
print('''\n欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存''')
dic={'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
print(dic)
menu()
n=int(input())
if n==2:
a=input()
if a in dic:
del dic[a]
print('Success')
else:
print('No Record')
print(dic)
else:
print('ERROR')
6.唯一字符
描述:
给定一个字符串,找到它的第一个不重复的字符,输出它的索引。如果不存在这种字符或空串,则返回 -1。
本题字符串中只包含小写字母。
from collections import Counter
def firstUniqChar(s):
c_counter = Counter(s)
for c in s:
if c_counter[c] <= 1:
return s.index(c)
else:
return -1
print(firstUniqChar(input()))
7.删除列表中重复元素
用户输入两个正整数 m 和 n ,其中m做为随机数种子。随机产生 n 个0-9之间的整数,以字符形式加入列表。先输出列表,再输出去除重复元素后按升序排序的列表。
import random
m=int(input())
n=int(input())
nums=[]
random.seed(m)
for i in range(0,n):
nums.append(random.randint(0, 9))
nums=[str(i) for i in nums]
print(nums)
print(sorted(set(nums)))
8.字典增加元素
现有字典:dict1 = {'赵广辉': '13299887777', '特朗普': '814666888', '普京': '522888666', '吴京': '13999887777'}
尝试向其中加入一个键值对,键和值在两行里输入,如果输入的键在字典中已经存在,则输出“您输入的姓名在通讯录中已存在”,如输入的键在字典中不存在则把键和值加入到字典中。操作完成后输出字典中所有键值对。
dict1 = {'赵广辉': '13299887777', '特朗普': '814666888', '普京': '522888666', '吴京': '13999887777'}
key1=input()
value1=input()
if key1 in dict1.keys():
print("您输入的姓名在通讯录中已存在")
else:
dict1[key1]=value1
for i,j in dict1.items():
print(i+':'+j)
9.字典更新
现有字典:dict1 = {'赵广辉': '13299887777', '特朗普': '814666888', '普京': '522888666', '吴京': '13999887777'}
尝试修改一个键值对,姓名和电话在两行里输入,如果输入的键在字典中存在,则用新输入的电话号码替换原来的号码,如输入的键在字典中不存在则输出“数据不存在”。操作完成后输出字典中所有键值对。
dict1 = {'赵广辉': '13299887777', '特朗普': '814666888', '普京': '522888666', '吴京': '13999887777'}
key1=input()
value1=input()
if key1 not in dict1.keys():
print("数据不存在")
else:
dict1[key1]=value1
for i,j in dict1.items():
print(i+':'+j)
Python-字典题目相关推荐
- python面试题目
python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释. ? ...
- python 字典取值的时间复杂度_五道常见的Python面试题一定不要答错!
第1题:阅读下面的代码,默读出A0,A1至An的最终值. 默读代码类的题目,相对来说是比较简单的.重点去研究列表解析,之后你就可以轻松的回答这些问题啦 第2题:如何提高python的运行效率? 1.数 ...
- (三)PYTHON字典 元祖 列表尝试应用
(三)PYTHON字典 元祖 列表尝试应用 1. 使用 join 方法将下划线添加到列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] li = ['boom', ...
- 转-python面试题目集锦(100道部分附答案)
Python爬虫人工智能教程:www.python88.cn 编程资源网:www.python66.cn 最近收集整理了100道python真实面试笔试题,并自己做了一些,希望能帮助大家,顺利早日找到 ...
- python考试题目及答案-python面试真实笔试题,带答案(1-10题)
最近从各种python微信群收集了100多道真实的python面试笔试题,因为都是真实题目,故没有答案,为了给那些即将面试的好友提供一份帮助,也为了给广大好友巩固基本python语法知识,最近将把收集 ...
- 【2021-11-23】python字典、函数的巧妙融合
初中物理电学与python字典.函数的巧妙融合 两段说明信息,分别说明如何输入变量,如果选择公式 输入变量,融合了字典添加的方法,把输入的键名和键值,编成字典 然后对每一种情况列出函数表达式,进行欧姆 ...
- 阿里云大学考试python中级题目及解析-python中级
阿里云大学考试python中级题目及解析 1.WEB开发中,下列选项中能够实现客户端重定向的设置是() A.响应头设置Location+状态码200 B.响应头设置Location+状态码302 C. ...
- 电子学会青少年编程等级考试Python二级题目解析01
Python二级题目解析 1.题目 原有列表s = [5, 2, 9, 1],下列哪个操作不能使得列表s变为[9, 5, 2, 1]?( )[2021.06] A. s.sort() s.revers ...
- python字典常用的操作_说说Python字典以及基本操作?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- python字典从头到尾_从头到尾开发并销售python API
python字典从头到尾 I recently read a blog post about setting up your own API and selling it. 我最近阅读了一篇有关设置和 ...
最新文章
- 青源 Forum | 人工智能的数理基础前沿系列报告 · 第 5 期
- Linux/unix主机环回地址的一些功用
- Linkedin 工程师如何优化他们的 Java 代码
- django template语法
- Kendo UI 简单使用
- 华为被超越!这家公司成中国最大智能手机制造商,不是小米!
- 聊聊推荐系统中的偏差
- java 四人帮,Java PatternDesign of GOF(四人帮巨著,享誉15年)第十五模式
- 智能互联网之数据存储实践
- Oracle中drop_column的几种方式和风险
- 简单解决Python文件中文编码问题
- 没有计算机基础可以学python-零基础,没有编程和计算机基础,究竟该怎么自学python?...
- 2017 Multi-University Training Contest - Team 7:1010. Just do it(组合数?)
- 拓端tecdat|R语言用rle,svm和rpart决策树进行时间序列预测
- 超微服务器怎么开虚拟化,amd服务器开启虚拟化(amd处理器开启虚拟化)
- 【深度学习--图像分类】imageAI自定义模型训练
- 关于网络小说均订的那些事:有些已成历史,有些在不断打破纪录
- 织梦建站教程dedecms标签调用大全【经典教程】
- 关于函数连续性的逐点定义
- 【砸壳STEP2】使用cycript查看并修改微信UI界面
热门文章
- Mandriva下载
- 梳理ERP与CRM、MRP、PLM、APS、MES、WMS、SRM的关系
- 我的世界Forge版开服教程
- 【Genome Biology 2023】EvoAug:通过进化启发的数据增强,提高基因组 DNN 的泛化和可解释性
- RecyclerView加载sdcard/Music下的音乐列表
- Solidworks钣金教程:solidworks草图知识要点
- Candy Bags / 糖果袋(整数算法问题)
- Skype for Business到Microsoft Teams的升级(二)--升级的选择以及规划
- cocos creator 横版射击游戏 突击对决H5+安卓+IOS三端源码
- 安装MySQL时,输入mysqld --install后,显式该文件已存在