[Python3 练习] 009 利用列表隐藏并找到有用的信息
题目:利用列表隐藏并找到有用的信息
(1) 描述
1) 题源
- 鱼 C 论坛中“小甲鱼”老师出的题
- 链接地址:第020讲:函数:内嵌函数和闭包 | 课后测试题及答案
2) 修改
- 题中带有一条极长的字符串,不方便写在此随笔中
- 我自己心血来潮,将此题改了改
- 具体见下方要求
(2) 要求
已知 2 个列表与 1 个字符串:
list1 = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')']
list2 = []
str1 = " I am not a smart man, but I know what love is."
每次从 list1 中随机选出 1 个字符,并将其添加到列表 list2 中,总共添加 520 个字符
将 str1 中的每个字符插入 list2 中
- 不改变每个字符的先后顺序
- 分散插入 list2 中
计算 list2 中各个字符的个数
把插入其中的 str1 找出来
(3) 程序
1) 代码
import random
list1 = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')']
list2 = []
str1 = "I am not a smart man, but I know what love is."
len_str1 = len(str1) # 字符串长度
len_interval = 520//len_str1 # 间隔
# 写入
for i in range(520): # list2 中的 520 个字符全由 list1 中的字符随机重复组成
temp1 = random.randint(0, 9)
list2.append(list1[temp1])
temp2 = 0
for j in range(len_str1): # 把 str1 中的各个字符“藏入” list2 中
temp2 += random.randint(1, len_interval)
list2.insert(temp2, str1[j])
# 读出
list3 = [] # 存放于 list1 中相同的字符
list4 = [] # 存放找出来的 str1
for k in range(520+len_str1): # list2 的长度为 520+len_str1
if list2[k] not in list3:
print(list2[k], list2.count(list2[k]))
list3.append(list2[k])
if list2[k] not in list1:
list4.append(list2[k])
for i in range(len_str1):
print(list4[i], end='')
2) 运行情况
- 因为一开始存入 list2 中的 520 个字符是随机生成的,所以(几乎)每次运行的结果都是不同的,若出现连续两次相同,可以买一波彩票
- 运行截图

[Python3 练习] 009 利用列表隐藏并找到有用的信息的更多相关文章
- Excel列表部分列表隐藏与取消隐藏
Excel列表部分列表隐藏与取消隐藏 2014-2-19 隐藏:选中需要隐藏的列(选中A.B.C....),右键单击所选部分,选择"隐藏"即可. 取消隐藏:从A选中至所见表格最后的 ...
- 一道Python面试题:给出d = [True, False, True, False, True],请利用列表d,只用一句话返回列表[0,2,4]
看题:给出d = [True, False, True, False, True],请利用列表d,只用一句话返回列表[0,2,4] 这道题的关键是拿到True的索引值,最初我是用list的index方 ...
- python3 三元表达式,列表解析
python3 三元表达式,列表解析 三元表达式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 x=2 y=3 if x > y ...
- 【web端权限维持】利用ADS隐藏webshell
0X01 前言 未知攻,焉知防,在web端如何做手脚维护自己拿到的权限呢?首先要面临的是webshell查杀,那么通过利用ADS隐藏webshell,不失为一个好办法. 0X02 利用ADS隐藏web ...
- Python3 简单的三级列表思路
Python3 简单的三级列表思路(初学者 比较low) 代码如下: info = { '北京':{ '沙河':['benz','momo'], '朝阳':['北土城','健德门'], '国贸':[' ...
- 【Python】机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值
[Python]机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值 本题目来自吴恩达机器学习视频. 题目: 你是一个餐厅的老板,你想在其他城市开分店,所以你得到了一些数据(数据在本文最下方), ...
- Python3 三元表达式、列表推导式、生成器表达式
Python3 三元表达式.列表推导式.生成器表达式 三元表达式 表达式中,有三个元素 name = input("请输入姓名: ")ret = '输入正确' if name == ...
- 利用python itchat给女朋友定时发信息
利用itchat给女朋友定时发信息 涉及到的技术有itchat,redis,mysql,最主要的还是mysql咯,当然咯,这么多东西,我就只介绍我代码需要用到的,其他的,如果需要了解的话,就需要看参考 ...
- Saiku设置展示table数据不隐藏空的行数据信息(二十六)
Saiku设置展示table数据不隐藏空的行数据信息 saiku有个 非空的字段 按钮,点击这个后,会自动的把空的行数据信息给隐藏掉,这里我们来设置一下让其行数据不隐藏,为空的就为空. 主要更改两个文 ...
随机推荐
- dying relu 和weight decay
weight decay就是在原有loss后面,再加一个关于权重的正则化,类似与L2 正则,让权重变得稀疏: 参考:https://www.zhihu.com/question/24529483 dy ...
- shell中通过读取输入yes no判断下一步如何处理
if [ -d $r_item_rmgit ];then read -p "$r_item_rmgit exit, replace it ...
- 超好用的input模糊搜索 jq模糊搜索,
上来先展示效果:默认展示效果: 输入内容: 上代码: css部分: <style type="text/css"> * { padding:; margin:; } h ...
- 给虚拟机CentOS7扩容(lvm方式)
虚拟机中centos7原有容量不够了,需要进行扩容. 可以使用图形工具gparted来进行操作,安装和使用可自行百度.但需要注意的是,这篇文章提到:一定要用parted中的mkfs命令格式化分区,用系 ...
- Django【第21篇】:Ajax之FormData
ajax补充--------FormData等... 一.回顾上节知识点 1.什么是json字符串? 轻量级的数据交换格式 2.定时器:关于setTimeout setTimeout(foo,3000 ...
- A1065
判断两数相加是否大于第三数,大于输出true,否则输出false(相等也是false) 1 需要注意数字溢出的问题: 2 先判断溢出,因为在a,b都是负数最小值的情况下,相加直接是正数,在c较小的时候 ...
- 解决Intellij IDEA中项目不能识别yml配置文件
问题:能读取资源路径下的properties配置文件但是不能读yml配置文件 因为无法读取配置yml配置文件,所以不能配置bean,导致项目启动报错. 解决方法: 在VM options中设置虚拟机加 ...
- 代理上网(ssh 动态端口转发)
ssh 是一种加密通讯的网络协议,常用来在两台机器间做远程登陆.在这里,我们用SSH 来做代理上网. 假设情景 你的PC 不能自由联网 但你的PC 可以访问机器B 机器B 可以自由联网 SSH 上网原 ...
- phpstudy升级5.7
1:备份当前数据库数据. 最好是导成 SQL 文件 2:备份 PhpStudy 下的 MySQL 文件夹.以防升级失败.还可以使用旧版本的数据库 3:下载MySQL5.7.解压.然后放在 PhpStu ...
- codevs 3137-3139 栈练习 x
3中 换行需谨慎!!!一定要注意换行!!! 3137 栈练习1 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一 ...