我想知道如何在列表中包含列表的情况下以最短的方式进行检查。我不需要检查值,只需检查列表的类型。我想知道列表中的对象是否为列表。就是这样。
谢谢!
答案 0 :(得分:4)
使用isinstance(x, list)
来查看x
是否是list
的实例。
如果要确保列表中的所有所有元素(我们称其为my_list
)都是列表,请使用all()
:
all(isinstance(x, list) for x in my_list)
如果您只想知道my_list
内是否有任何列表,请使用any()
:
any(isinstance(x, list) for x in my_list)
这两个都返回布尔值(True
/ False
),因此您可以将其存储到变量中或在if
语句中使用它或任何其他方式:
if any(isinstance(x, list) for x in my_list):
print('At least one list!')
else:
print('No lists in my_list')
答案 1 :(得分:0)
列表可以是混合类型,但是您可以使用:root {
--font-size: 100%;
--ratio: 1.333;
--ratio-alt: 1.68;
--h4: calc(var(--font-size) * var(--ratio));
--h3: calc(var(--h4) * var(--ratio));
--h2: calc(var(--h3) * var(--ratio));
--h1: calc(var(--h2) * var(--ratio));
}
@media (min-width: 40em) {
:root {
--ratio: --ratio-alt;
}
}
方法在列表中找到任何索引的类型
type
返回
x = [1, 2, 'three', [4, 5, 6]] # This list contains int, int, str, list
for i in x:
print(type(i))
答案 2 :(得分:0)
您可以使用isinstance方法进行检查:
例如,如果您有字典temp = {}
您可以使用
进行检查 print(isinstance(temp, dict)) # it ll return True if temp is a dictionary.
与列表和字符串相同...
答案 3 :(得分:0)
要检查任何项是否为列表,可以执行以下操作:
if list in map(type, my_list):
# there is a list in `my_list`
要检查所有项目是否为列表,可以执行以下操作:
if {list} == set(map(type, my_list)):
# all items are lists
您可以通过以下方式更加明确
:def is_list(x):
return type(x) == list
然后:
if any(map(is_list, my_list)):
# some items are lists
或者:
if all(map(is_list, my_list)):
# all items are lists
请务必添加对空列表案例的处理。