1、一个str A,列表B的所有元素都在A中时返回True

A = 'HeooWoldHomeUbuntuCentOSFedora'
B = ['Ubuntu', 'CentOS', 'Home', 'Mint']

方法一: result = [b for b in B if b in A ] == B    返回B中符合条件的值列表与B进行比较

 
方法二: 赞
from functools import reduce  # python3 reduce需要先导入
reduce(lambda x,y:x and y, [s in A for s in B])   #  [s in A for s in B] 是一个True,False 列表,高阶函数reduce 将列表中值分别相与 
 
方法三:
def f():
for b in B:
if b not in A:
return False
return True
效率比较高,如果有False ,不用全部遍历
 
 2 、赋值与浅拷贝
i=1
loc=['abc']
while i <= 3:
#print(loc)
temp = loc
temp[0] = loc[0] + '[{}]'.format(i)
print(temp)
#print(loc)
i = i + 1
结果如下:

['abc[1]']
['abc[1][2]']
['abc[1][2][3]']

 发现temp变化后,loc也会随着变化。因为temp =loc,直接赋值,在python中,一切皆对象,对象的赋值操作就是对象的引用,temp如同loc的别名。
 
改成如下:temp=loc[:],切片操作,会生成一个新列表temp,切片操作属于浅拷贝,浅拷贝会创建新对象,其内容是原对象的引用。
 

浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数

比如对上述list_a,

切片操作:list_b = list_a[:]   或者 list_b = [each for each in list_a]

工厂函数:list_b = list(list_a)

copy函数:list_b = copy.copy(list_a)

对于非容器类型,如数字,字符,以及其它“原子”类型,没有拷贝一说。产生的都是原对象的引用。

可参考:https://blog.csdn.net/solariens/article/details/53527373

3、输出如下数列在 1000000 以内的值,以逗号分隔:k(0)= 1, k(1)=2, k(n) = k(n–1)2 + k(n–2)2,其中,k(n) 表示该数列

常规思路:递归

推荐:

4、

问题1:请编写程序,统计该文件中出现的所有中文字符及标点符号的数量,每个字符及数量之间用冒号:分隔,例如“笑:1024”,将所有字符及数量的对应采用逗号分隔,以CSV文件格式保存到“笑傲江湖-字符统计.txt”文件中。注意,统计字符不包括空格和回车。

fi = open("笑傲江湖-网络版.txt", "r", encoding='utf-8')
fo = open("笑傲江湖-字符统计.txt", "w", encoding='utf-8')
txt = fi.read() #
d = {}
for c in txt:
d[c] = d.get(c, 0) + 1 # d.get(a,b),如果字典中没有键a,则返回b;如果有键a,则返回字典中a的值。
del d[' ']
del d['\n']
ls = []
for key in d:
ls.append("{}:{}".format(key, d[key]))
fo.write(",".join(ls))
fi.close()
fo.close()

问题2:请编写程序,统计“笑傲江湖-网络版.txt”中出现在引号内所有字符占文本总字符的比例,采用如下方式打印输出:

用程序运行结果的真实数字替换上述示例中数字,均保留整数,字符串中标点符号采用中文字符。

fi = open("笑傲江湖-网络版.txt", "r", encoding='utf-8')
txt = fi.read()
cnt = 0
flag = False
for c in txt:
if c == "“":
flag = True
continue
if c == "”":
flag = False
if flag:
cnt += 1
print("占总字符比例:{:.0%}。".format(cnt/len(txt)))
fi.close()

python 编程的更多相关文章

  1. Python黑帽编程2.1 Python编程哲学

    Python黑帽编程2.1  Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...

  2. Linux运维人员如何学习python编程

    Linux运维人员如何学习python编程 从不会写代码,到自己独立能写代码解决问题 .这个问题很重要!盲目学习所谓的项目,最后 还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目 ...

  3. Python编程核心之makeTextFile.py和readTextFile.py

    引言: 最近大半年都在学习python编程,在双十一的时候购买了<Python编程核心>,看到makeTextFile.py和readTextFile.py两个例子有点错误,所以在这里给修 ...

  4. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  5. Python 编程规范-----转载

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...

  6. 学习Python编程的11个资源

    用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程语言.如果你正打算学习 web 开发,Python 是一个不错的选择,甚至你想学游戏开发也可 以从 Python 开始,因 ...

  7. Emacs 配置 Python 编程环境

    python编程环境设置涉及到:自动完成.语法检查.虚拟环境. 为了不把系统搞乱,在python的虚拟环境中安装相关的插件. 一.安装python虚拟环境 virtualenvwrapper sudo ...

  8. Python编程规范及性能优化(转载)

    转载地址:http://codeweblog.com/python编程规范及性能优化/

  9. 精通 Oracle+Python,第 5 部分:存储过程、Python 编程

    调用数据库存储过程及其他感兴趣的高级 Python 编程功能. 2010 年 3 月发布 对于涉及数据库的软件开发来说,有两种主流开发方法:一种是在应用程序中(对于三层体系结构,也可以是在中间件中)实 ...

  10. 【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

随机推荐

  1. Zookeeper并不保证读取的是最新数据

    Zookeeper并不保证读取的是最新数据 原文地址:http://www.crazyant.net/2120.html 如果是对zk进行读取操作,读取到的数据可能是过期的旧数据,不是最新的数据. 已 ...

  2. CentOS 7下Samba服务安装与配置详解

    1. Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共 ...

  3. altera DDR2 IP核之仿真

    在生成的IP核文件夹下,有一个testbench文件夹,里面包含了一个example测试激励和DDR2仿真模型. 如下 20 -rw-r--r-- 1 Administrator 197121 171 ...

  4. Linux配置虚拟内存

    我的Linux内存很少,所以我给它弄个虚拟内存 首先建立一个1G的空文件: dd if=/dev/zero of=/home/swapfile bs=64M count=16 格式化为swap: mk ...

  5. debian apache2 修改默认路径

    1.修改 /etc/apache2/sites-enable/000-default.conf 将DocumentRoot改成你的路径 2.修改 /etc/apache2/apache2.conf & ...

  6. ELK日志监控平台安装部署简介--Elasticsearch安装部署

    最近由于工作需要,需要搭建一个ELK日志监控平台,本次采用Filebeat(采集数据)+Elasticsearch(建立索引)+Kibana(展示)架构,实现日志搜索展示功能. 一.安装环境描述: 1 ...

  7. Error:(72) error: unknown element <user-permission> found.

    android studio升级之后会出现这样一个问题,Error:(72) error: unknown element <user-permission> found. 解决方法是在项 ...

  8. 在云主机上基于nginx部署基于Flask的网站服务器 (自己部署 )

    1.申请云主机 a.阿里云 (注意:阿里云的服务器需要手动添加安全规则使能80端口) b.腾讯云 2.把网站服务器程序拷贝到云主机 3.远程登录云主机 4.解压网站服务器程序 yum install ...

  9. 宝塔面板配置阿里云SSL证书流程

    阿里云SSL证书申请过程就不在这里说了 1 先下载阿里云成功申请的SSL证书 解压后 有3个文件 2  找到宝塔面板的 站点设置  找到SSL设置 3 找到其他证书 用文本打开.key文件  复制里面 ...

  10. Exce 快捷键 tips

    1. 填充快捷键 ctrl+R  向下填充 CTRL+D 向右填充 2. 筛选快捷键 CTRL+SHIFT+L 3. 移动到当前区域的边缘: Ctrl + shift + 方向箭头 4. 字符连接:& ...