首页 > 解决方案 > 查找元组中列表的数量

问题描述

我有一个函数,它接受两个输入,都是元组,并在继续之前检查以确保它们的大小相同。我在尝试计算每个元组的长度时遇到问题。

例子:

tupA = ([1,2,3,4],[11,22,33,44])
tupB = ([1,2],[3,4],[5,6])
tupC = ([1,2,3,4,5,6,7,8,9])

当我取每个对象的长度时,它返回:

len(tupA) = 2
len(tupB) = 3
len(tupC) = 9

有没有简单的方法让 len(tupC) 返回 1?我通过添加逗号找到了解决方法:

tupD = ([1,2,3,4,5,6],)
len(tupD) = 1

但我不想强迫用户必须添加逗号。有一个更好的方法吗?

标签: pythonlisttuples

解决方案


对于此类数据

tupA = ([1,2,3,4],[11,22,33,44])
tupB = ([1,2],[3,4],[5,6])
tupC = ([1,2,3,4,5,6,7,8,9])

最后一个不是tuple,你可能会检查

print(type(tupC)) #prints <class 'list'>

您可以使用函数检查变量是否属于给定类型isinstance,因此可以创建自己的函数

def mylen(x):
    if isinstance(x,list):
        return 1
    else:
        return len(x)

这将为1您的tupC3为您的tupB2为您的tupA


推荐阅读