python - 查找元组中列表的数量
问题描述
我有一个函数,它接受两个输入,都是元组,并在继续之前检查以确保它们的大小相同。我在尝试计算每个元组的长度时遇到问题。
例子:
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
但我不想强迫用户必须添加逗号。有一个更好的方法吗?
解决方案
对于此类数据
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
您的tupC
,3
为您的tupB
和2
为您的tupA
。
推荐阅读
- android - 屏幕锁定时如何显示来电屏幕?
- java - Java DecimalFormat(和 taglib fmt:formatNumber)将 0.00 格式化为 --0.00
- python - 在python中创建对象矩阵
- reactjs - 使用 API Gateway 和 Lambda 函数的 S3 分段上传
- sql - SQL 序列从个位数跳到 1000 再到 2000。如何让它回到原来的序列?
- excel - 是否可以允许在受保护的工作表中折叠/展开?
- mysql - 根据同一记录的其他字段中的值更新记录的字段
- ansible - Ansible:将字典转换为名称=值字符串
- python - 使覆盖仅计算成功的测试并忽略 xfailing 测试
- java - Google pubsub 异步 java API 干净关闭