如何类型检查嵌套的整数列表并转换为字符串?

How to type check a nested list of integers and convert to string?

如果我有包含列表和整数值的 kwargs,我该如何在 for if 循环中键入检查项目? 我一直收到 TypeError: 'int' is not iterable 或它跳过 if 语句。

我试过运算符 ==!=isis notlistListitertype(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

您可以使用许多其他抽象基础 类,因此我建议您阅读文档以了解它们。

https://docs.python.org/3/library/typing.html

https://docs.python.org/3/library/collections.abc.html