这两个代码片段之间有什么区别?使用type():
import types
if type(a) is types.DictType:
do_something()
if type(b) in types.StringTypes:
do_something_else()
Run Code Online (Sandbox Code Playgroud)
使用isinstance():
if isinstance(a, dict):
do_something()
if isinstance(b, str) or isinstance(b, unicode):
do_something_else()
Run Code Online (Sandbox Code Playgroud) 如何验证列表或元组中所有元素的类型是否相同且某种类型?
例如:
(1, 2, 3) # test for all int = True
(1, 3, 'a') # test for all int = False
Run Code Online (Sandbox Code Playgroud) 说我有一个数字列表.如何检查列表中的每个项目是否为int?
我已经四处寻找,但未能找到任何相关内容.
for i in myList:
result=isinstance(i, int)
if result == False:
break
Run Code Online (Sandbox Code Playgroud)
会起作用,但在我看来看起来非常丑陋和不熟悉.
有没有更好的(更pythonic)方式这样做?
我想强制列表中的所有项目都是 type x。什么是最好的方法来做到这一点?目前我正在做如下断言:
a = [1,2,3,4,5]
assert len(a) == len([i for i in a if isinstance(i, int)])
Run Code Online (Sandbox Code Playgroud)
int我要在这里强制执行的类型在哪里。有一个更好的方法吗?
如果我在python中有一个列表,是否有一个函数告诉我列表中的所有项是否都是字符串?
例如:
["one", "two", 3]将返回False,["one", "two", "three"]并将返回True.
有没有办法检查列表/字典中是否存在特定数据类型的实例,而无需显式检查每个元素/键?
我怀疑答案是否定的。但是,如果它确实存在,我想它类似于您可以使用in运算符搜索特定元素/键的方式,如下所示:
3 in [1, 2, 3] # => True
Run Code Online (Sandbox Code Playgroud)
除非您要检查数据类型的实例而不是某个特定值,如下所示:
int in [1,"a", 3.4] # => True
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我试图在TypeError给出一个混合类型的列表时,如果一个列表包含一个字符串数据类型的元素.我能够使用下面的代码执行此操作,但我想知道是否有更好的方法来实现相同的结果.
numbers = [1, "two", 3, 4, 5]
myStrList = [x for x in numbers if isinstance(x, str)]
if len(myStrList) != 0:
raise TypeError
else:
#do something
Run Code Online (Sandbox Code Playgroud) 假设我有一个接受任意数量参数的函数。除了循环之外,有没有办法检查每个参数是否是一个列表?
def func(*args):
# check if all args are lists
Run Code Online (Sandbox Code Playgroud)
我正在尝试any()和all()方法,但无法弄清楚是否有办法使用isinstance()和type()与它们一起使用。
python ×8
list ×2
types ×2
algorithm ×1
exception ×1
find ×1
inheritance ×1
int ×1
oop ×1
python-3.x ×1
search ×1
typechecking ×1