📜  将 int 和 object 列合二为一 - Python (1)

📅  最后修改于: 2023-12-03 14:53:43.560000             🧑  作者: Mango

将int和object列合二为一 - Python

在Python中,我们可以使用zip()函数来将多个列表合并为一个。但是,如果我们有一个列表包含整数和对象,如何将其拆分并将其合并到单个列表中?

在这篇文章中,我们将介绍如何使用列表推导式和类型检查来将int和object列表合并到一个列表中。

方法1: 使用类型检查

我们可以使用isinstance()函数来检查列表中的元素类型。然后,我们可以使用列表推导式过滤出整数和对象,并使用zip()函数将它们合并为一个元组,最后使用list()函数将它们转化为列表。

下面是一个示例代码片段:

list1 = [1, 2, 'hello', 'hi']
ints = [i for i in list1 if isinstance(i, int)]
objs = [o for o in list1 if not isinstance(o, int)]
merged_list = list(zip(ints, objs))
print(merged_list)

输出结果:

[(1, 'hello'), (2, 'hi')]
方法2: 使用try-except语句

另一种方法是使用try-except语句来处理整数和对象。我们可以使用列表推导式来遍历列表中的元素,然后使用try-except语句过滤出整数和对象,并将它们合并为一个列表。

下面是一个示例代码段:

list1 = [1, 2, 'hello', 'hi']
ints = []
objs = []
for i in list1:
    try:
        ints.append(int(i))
    except:
        objs.append(i)
merged_list = list(zip(ints, objs))
print(merged_list)

输出结果:

[(1, 'hello'), (2, 'hi')]
结论

无论您选择哪种方法,将int和object列表合并到一个列表中都很容易。我们可以使用类型检查或try-except语句来过滤出整数和对象,并使用zip()函数将它们合并到一个元组中,然后将它们转化为列表。

如果您需要将不同类型的数据合并到一个列表中,这些方法也同样适用。