python中re的用法,python res什么意思
这个问题有最好的答案,请点击这里访问。
以下是来自AllenDowney在Github上的ThinkBayes的一段代码:
def read data(filename= showcases . 2011 . CSV ):
“”读取数据的CSV文件。
参数:
文件名:字符串文件名
返回:( price1 price2 bid1 bid2 diff1 diff2)元组序列
fp=打开(文件名)
reader=csv.reader(fp)
res=[]
对于阅读器中的t:
_heading=t[0]
data=t[1:]
尝试:
data=[int(x) for x in data]
#打印标题,数据[0],长度(数据)
资源追加(数据)
除了值错误:
及格
fp.close()
返回zip(*res)
整个文件可以在github的url:链接上看到。
不知道最后一行代码中的zip(*res)是什么意思?显然:
“*”用作前缀有什么作用?然后
Zip函数对*有什么作用?
我对python不熟悉,可能会问一些比较明显的问题。我在函数的docstring里看到作者的注释,返回一个(pric1price 2 …)序列,但是我不确定。
更新:这里是JamesRettie的Anwer的追踪,这里是我在Python3.6中运行他提供的代码时得到的信息:
In [51]: zip([a , b , c],[1,2,3])
Out[51]:
而在python 2.7中运行相同的代码将产生以下结果:
In [2]: zip([a , b , c],[1,2,3])
Out[2]: [(a ,1),( b ,2),( c ,3)]
你能解释一下为什么吗?不同的是,python 2.7和python 3.6对我来说很重要,因为我仍然需要支持python 2.7,但我想迁移到3.6。
谢谢你给我指出这个链接。确实回答了我上面的问题。
对于python 3,使用list(zip(*x))。很好,这在python 2中也适用,因为将一个列表应用于一个列表仍然会给出相同的列表。
身材好!那对我很有用。谢谢你。
在python中,*是‘splat’运算符。它用于将列表解包为参数。例如:foo(*[1,2,3])与foo(1,2,3)相同。
zip()函数接受niterables并返回一个Y元组,其中Y是所有提供的iterables长度中最小的。yth元组将包含所有提供的iterables的yth元素。
例如:
zip([a , b , c],[1,2,3])
会屈服
( a ,1) (b ,2) (c ,3)
对于嵌套列表,如您提供的示例中的res,调用zip(*res)将执行以下操作:
RES=[ a , b , c],[1,2,3]]
zip(*res)
#这与调用zip([a , b , c],[1,2,3])是一样的
( a ,1)
( b ,2)
( c ,3)
Zip(*res)变换矩阵(2D数组/列表)。*运算符“解包”一个或多个矩阵行,沿列压缩行:
x=[(a , b , c ),(1,2,3)]
zip(*x)
[(a ,1),( b ,2),( c ,3)]
想象在对角线上镜像矩阵。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。