如何类型检查嵌套的整数列表并转换为字符串?
How to type check a nested list of integers and convert to string?
如果我有包含列表和整数值的 kwargs,我该如何在 for if 循环中键入检查项目?
我一直收到 TypeError: 'int' is not iterable
或它跳过 if 语句。
我试过运算符 ==
、!=
、is
、is not
和 list
、List
、iter
、type(list)
和 int
示例:
如果我的 kwargs 是...
kwargs = {'foo': [1, 2], 'bar': 2, 'baz': 3}
new_list = []
for kw, args in kwargs.items():
if args == list:
for arg in args:
new_list.append(str(arg))
else:
new_list.append(str(args))
print(new_list)
>>> ['[1, 2]', '2', '3']
如果我将 if 语句切换为 if args != int:
我会得到 TypeError: 'int' is not iterable
要检查一个变量是否是一个列表,你可以简单地写:
if isinstance(var, list):
pass
但是如果变量可以是任何可迭代的,请使用输入模块。
from typing import Iterable # or from collections.abc import Iterable
if isinstance(var, Iterable):
pass
您可以使用许多其他抽象基础 类,因此我建议您阅读文档以了解它们。
如果我有包含列表和整数值的 kwargs,我该如何在 for if 循环中键入检查项目?
我一直收到 TypeError: 'int' is not iterable
或它跳过 if 语句。
我试过运算符 ==
、!=
、is
、is not
和 list
、List
、iter
、type(list)
和 int
示例: 如果我的 kwargs 是...
kwargs = {'foo': [1, 2], 'bar': 2, 'baz': 3}
new_list = []
for kw, args in kwargs.items():
if args == list:
for arg in args:
new_list.append(str(arg))
else:
new_list.append(str(args))
print(new_list)
>>> ['[1, 2]', '2', '3']
如果我将 if 语句切换为 if args != int:
我会得到 TypeError: 'int' is not iterable
要检查一个变量是否是一个列表,你可以简单地写:
if isinstance(var, list):
pass
但是如果变量可以是任何可迭代的,请使用输入模块。
from typing import Iterable # or from collections.abc import Iterable
if isinstance(var, Iterable):
pass
您可以使用许多其他抽象基础 类,因此我建议您阅读文档以了解它们。