表达式"/>
Python 随笔——从文本中读取数据及Lambda表达式
Python 随笔——从文本中读取数据及Lambda表达式
标准输入输出
之前在使用python的时候如果从文本中加载数据,一般加载的都是m*n行的矩阵,这种情况下可以使用np.loadtxt很容易解决,但是如果像普通的输入,并不是规则的矩阵,要怎么输入呢?
尝试一
经过查阅资料发现可以使用 fin.readline()来完成对某行的读取,但是这样读取出来的结果是字符串,并且还需要不断地去掉分隔符,不然得到地结果不正确。
如果说要从读取的字符串中取到数字,还需要使用正则表达式
dataA=(fin.readline().strip())
dataA=re.findall("\d+",dataA)
如果要读取负数,还需要添加前面的-号
data=(fin.readline().strip(' '))
data=(re.findall("\-?\d+",data))
这样的读写方式和cin有着天壤之别。。
但是找了很久还是没有找到正确的输入方式,最终到codeforce查看别人的代码才发现正确的输入方式
解决
正确的输入方式如下
data = list(map(int,input().split()))
这样就可以读取整行的数字到列表data中,十分方便。这才是python该有的样子!
Lambda表达式
其实在很多地方已经见过了lambda表达式,比如在排序的时候,会用lambda来指定key。
但是在使用的时候并不知道lambda是什么意思。
在查阅之后惊奇的发现,其实lambda表示的就是匿名函数,用法有点类似于js中的=>
比如在js中:
(a)=>a+1
代表的含义是
function(a)
{return a+3
}
对于lambda
lambda x:x+2
代表的含义是
def fun(x):return x+2
可见其实两者含义是一样的!!!
更多推荐
Python 随笔——从文本中读取数据及Lambda表达式
发布评论