1.Python反转数组的分片,
#coding=utf-8
def reverse_arr():
arr=[1,2,3,4,5]
reverse_arr1=[arr[i] for i in range(3,1,-1)]
print(reverse_arr1)
if __name__ == '__main__':
reverse_arr()
程序输出如下,
2.简述decorator的写法。
#coding=utf-8
def decorator_func(func):
def wrapper(*args,**kwargs):
print("Before func run")
func(*args,**kwargs)
print("After func run")
return wrapper
@decorator_func
def fun_to_decorator(hehe, nimei = "xixi"):
print("This is a func to decorator:"+hehe+","+nimei)
if __name__ == '__main__':
fun_to_decorator("func1", nimei="haha")
程序输出如下,
3.yield生成器及其作用。
# coding=utf-8
def read_file(fname, block_size=1024*1024):
f = open(fname)
while True:
chunk_data = f.read(block_size)
if not chunk_data:
break
yield chunk_data
if __name__ == '__main__':
iterator = read_file("D:\\1.txt")
for block in iterator:
print(block)
使用此示例前,先用多线程获取海量目录的golang脚本获取当前目录下的所有文件。存到D:\1.txt中,然后,使用Python脚本分块读取文本数据。
4.读取一个目录下的1000万个文件名。
请参考,Golang多线程读取千万级文件目录
https://www.jianshu.com/p/27bc119f0f1f
5.求取数组的最大子串和。
Golang实现,
package main
import (
"fmt"
)
func maxSubArray(arr []int) int {
res := arr[0]
sum := 0
for i := 0; i < len(arr); i++ {
if sum > 0 {
sum += arr[i]
} else {
sum = arr[i]
}
if res < sum {
res = sum
}
}
return res
}
func main() {
arr := make([]int, 0)
arr = append(arr, -2, 1, -3, 4, -1, 2, 1, -5, 4)
fmt.Println(maxSubArray(arr))
}
程序输出如下,
有疑问加站长微信联系(非本文作者)