草庐IT

python - 检查两个列表是否按类型 Python 相等

我想检查两个列表的每个索引是否具有相同类型的项目。例如,如果我有y=[3,"a"]x=[5,"b"]z=["b",5]对于x和y,检查应该是True。对于y和z,检查应该是False,因为相同位置的元素类型不相等。 最佳答案 只是map各自的元素type并比较那些:>>>x=[5,"b"]>>>y=[3,"a"]>>>z=["b",5]>>>map(type,x)==map(type,y)True>>>map(type,x)==map(type,z)False对于Python3,您还必须将map生成器转换为适当的列表,或者使用lis

python - "dict-like"在 Python 中是什么意思?

有时人们会提到Python中的“类X”对象。Example:data_iter_maker–Azero-argumentcallablewhichreturnsaniteratoroverdict-likedataobjects.“dict-like”是否有准确的定义,如果有,它是什么?它会是一个对象x可以像字典一样被索引:x[a],其中a是可散列的吗?在那种情况下,namedtuple可能不会被视为类似字典,因为您不能使用像x['a']这样的表达式进行索引(最后我检查过您必须编写x.a)。但另一方面,命名元组在功能上与字典非常相似,我不知道该怎么想。愤世嫉俗的是,我很想猜测“类似字典

python - numpy.int64 乘以 int -> numpy.float64

我将python3与numpy版本1.8.2(与numpy1.10.4和python2相同的问题)一起使用,并尝试做一些非常基本的事情:将两个整数相乘。importnumpyasnpa=9223372036854775808type(a)b=np.int64(0)type(b)type(b*a)但是输出是:builtins.intnumpy.int64numpy.float64所以两个整数相乘返回一个float!有什么合理的解释吗?请注意,如果我更改为a=9223372036854775807type(b*a)返回numpy.int64如果我把它提高到a=922337203685477

python - 我如何记录 :rtype: for a function that returns multiple possible data types?

这个问题在这里已经有了答案:Howtospecifymultiplereturntypesusingtype-hints(5个答案)关闭3年前。在Python文档字符串中,应该如何记录可以返回多种可能数据类型的函数的:rtype:?例如,如果一个函数可以根据函数参数返回defaultdict或dict或list,您如何记录这一点?代码示例:fromcollectionsimportdefaultdictdefread_state(state_file,state_file_type='defaultdict'):"""Deserializestatefileorcreateemptys

python - 在 Python 中自动键入转换参数

背景:我主要从管道中的命令行运行python脚本,因此我的参数始终是需要类型转换为适当类型的字符串。我每天都会编写很多小脚本,并且为每个脚本输入每个参数都会花费比应有的时间更多的时间。问题:是否有一种规范的方法可以自动为函数键入强制转换参数?我的方式:如果没有更好的方法,我已经开发了一个装饰器来做我想做的事。装饰器是下面的autocastfxn。修饰的fxn在示例中是fxn2。请注意,在代码块的末尾,我将1和2作为字符串传递,如果您运行脚本,它会自动添加它们。这是执行此操作的好方法吗?defestimateType(var):#firsttestboolsifvar=='True':r

python - 如何在 python 注释中指定输入和输出数据类型?

我见过几种标准,用于编写关于函数在Python中期望和返回的数据类型的注释。是否就哪一个是最佳实践达成共识?是http://www.python.org/dev/peps/pep-3107/中的新功能吗?我应该为此开始使用什么? 最佳答案 函数注解没有特定用途,它们可以用于任何事情。可以编写工具来从注释中提取信息并执行任何您想要的操作,包括检查类型或生成文档。但是python本身不会对这些信息做任何事情。您可以用于完全不同的目的,即提供将在参数上调用的函数或声明一串可能的返回值。注解可以是任何对象:defsomefunc(param

python - basestring 和 types.StringType 之间的 python 区别?

有什么区别:isinstance(foo,types.StringType)和isinstance(foo,basestring)? 最佳答案 对于Python2:basestring是str和unicode的基类,而types.StringType是str。如果要检查某物是否为字符串,请使用basestring。如果你想检查某物是否是字节串,使用str而忘记types。 关于python-basestring和types.StringType之间的python区别?,我们在StackO

Python:检查对象是否是字符串列表

如何检查一个对象是否是一个字符串列表?我只能检查一个对象是否是这样的字符串:defchecktype(obj):ifisinstance(obj,str):print"It'sastring"obj1=['foo','bar','bar','black','sheet']obj2=[1,2,3,4,5,'bar']obj3='bar'foriin[obj1,obj2,obj3]:checktype(i)期望的输出:It'salistofstringsIt'snotalistofstringsorasinglestringIt'sasinglestring 最

python - Pandas to_sql 所有列为 nvarchar

我有一个pandas数据框,它是动态创建的,其中的列名各不相同。我试图将它们推送到sql,但不希望它们作为默认数据类型“文本”进入mssqlserver(谁能解释为什么这是默认值?使用更常见的数据类型是否有意义?)有谁知道如何为所有列指定数据类型?column_errors.to_sql('load_errors',push_conn,if_exists='append',index=False,dtype=#Datatypeforallcolumns#)dtype参数采用字典,因为我不知道列是什么,所以很难将它们全部设置为'sqlalchemy.types.NVARCHAR'这是我想

python - Python 中的 'Type' 和 'Object' 有什么区别

这个问题在这里已经有了答案:WhataremetaclassesinPython?(24个答案)关闭7年前。我在阅读pythondocumentation时发现了这个在super关键字上:如果省略第二个参数,则返回的super对象是未绑定(bind)的。如果第二个参数是对象,则isinstance(obj,type)必须为真。如果第二个参数是类型,则issubclass(type2,type)必须为真(这对类方法很有用)。有人可以给我举个例子来说明传递类型作为第二个参数与传递对象之间的区别吗?文档是否在谈论对象的实例?谢谢。