我有一个这样的元组:
('path1', 'path2', ('orig1', 'patch1'), ('orig2', 'patch2'))
我要计算项目数
因此,当我运行此代码时:
for item in tpl:
print(item)
num = len(item)
print(num)
我明白了:
path1
5
path2
5
('orig1', 'patch1')
2
('orig2', 'patch2')
2
我的期望是:
path1
1
path2
1
('orig1', 'patch1')
2
('orig2', 'patch2')
2
非常新的Python,对于这种情况,我可能采取了完全错误的方法。
答案 0 :(得分:0)
使用isinstance
检查对象是什么。您当前在len()
上使用string
例如:
tpl = ('path1', 'path2', ('orig1', 'patch1'), ('orig2', 'patch2'))
for item in tpl:
print(item)
if isinstance(item, tuple):
num = len(item)
else:
num = 1
print(num)
输出:
path1
1
path2
1
('orig1', 'patch1')
2
('orig2', 'patch2')
2