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进行比较
def f():
for b in B:
if b not in A:
return False
return True
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]']
浅拷贝有三种形式:切片操作,工厂函数,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['
']
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()