0x21 python基础,兴趣为主
2020-12-07 10:21
标签:rate 直接 strip() int 参数 and 数据结构 兴趣 面试 01数据结构 1.变量的三种基本类型: 1. 整型(int) 2.另外四种重要类型 1.集合(set) 2.列表(list) 3.元组(tuple) 4.字典(dict) set和dict内置哈希算法所以查找速度很快 02文件读写 以后这用简单的数据使用awk将会更快 03使用模块 1.第三方模块 sys,re,等等 如果你要进行Web开发使用 django,flask等等 2.自己的模块 import my_py_name as mp 引用方法 mp.calc() 04函数式编程 05一道面试题+测试思想 对两个排过序的列表进行合并,法一:sorted方法 法二:自己编一个 总结 1.利用集合的思想,直接求并集,达到去重的目的,在利用sorted函数进行排序 2.列表的简单操作insert,append 3.random.sample 参数范围,列表元素e个数 4.在遍历列表时,如果要改变列表就需要res[:]来复制数据 5.assert的测试思想 6.__main__的使用 0x21 python基础,兴趣为主 标签:rate 直接 strip() int 参数 and 数据结构 兴趣 面试 原文地址:https://www.cnblogs.com/liu247/p/10988805.html
2. 字符串型(string)
3. 浮点型(float)
我们可以使用type()来打印出变量的类型 1 gt100 = open(‘/home/liuyang/Desktop/01-自由之光/file.txt‘,‘w‘)
2 for line in open(‘/home/liuyang/Desktop/01-自由之光/data.txt‘):
3 #逐行读取
4 line = line.strip()
5 #去掉/n
6 id_,name,score = line.split()
7 # 以空格为分界线 分别赋值给三个变量
8 print(‘id:{} name:{} score:{}‘.format(id_,name,score))
9 # 打印
10 gt100.write(‘{},{},{}\n‘.format(id_,name,score))
11 # 逐行保存
nums = [1,2,5,8,10]
gt5 = filter(lambda v: v>5,nums)
# filter的参数 一个函数,一个列表
# 这个高阶函数对第二个参数每个元素都使用 如果满足True保留元素 不满足则继续迭代
list(gt5)
# 列表生成器
gt6 = [i for i in nums if i>6]
print(gt6)
# 翻倍操作
gt10 = [i for i in nums if i%2==0]
print(gt10)
__init__ 相当于java 的构造函数
# 一个比较难的面试题
a = [1,1,3,4,4]
b = [2,3,4,6]
def combin_sort_1(a,b):
# 使用集合求并集
return sorted(set(a)|set(b))
def combin_sort_2(a,b):
res = list(set(a))
for _b in b:
# 去除重复的元素
if _b in res:
continue
for (idx,_a) in enumerate(res[:]):
# 这一个函数不能作用与集合
# enumerate 这个函数返回 第一元素的位置 和元素值
if _b > _a:
# 如果已经到了列表的末尾了
if idx == len(res)-1:
res.append(_b)
else:
continue
else:
res.insert(idx,_b)
break
return res
print(combin_sort_2(a,b))
print(combin_sort_1(a,b))
# 代码测试的思想
import random
def main():
# 随机生成两个长度不等的列表,并且进行排序
# random.sample(范围,个数)
frist = sorted(random.sample(range(100),random.randint(3,6)))
second = sorted(random.sample(range(100),random.randint(3,6)))
comb_1 = combin_sort_1(frist,second)
comb_2 = combin_sort_2(frist,second)
# 对比两个方法的结果
#print(comb_1)
#print(comb_2)
assert comb_1 == comb_2
# 如果结果不一样就会报错
if __name__ == ‘__main__‘:
for i in range(100):
main()
print("测试成功")
上一篇:JVM 数组创建的本质