Python打印返回值可以是列表,也可以是in

2024-05-23 19:02:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pyVCF读取VCF文件,返回的sample['AD']可以是list[8, 14]int5。你知道吗

如果我使用','.join(map(str,sample['AD'])),它将在int停止,返回“TypeError:'int'object is not iterable”。你知道吗

在这两种情况下,我如何编写它来打印它?你知道吗


回复意见:

只是普通代码。但是VCF文件有两种AD。你知道吗

import vcf
vcf_reader = vcf.Reader(filename='xxx.vcf.gz',compressed=True)
for record in vcf_reader.fetch(theChrid):
    for sample in record.samples:

Tags: 文件sampleinmapforrecordadlist
2条回答

检查结果是list实例还是integer实例

  if instanceof(result,int):
       #print as int
  else:
       #as list

在将输入值初始化为map()时,可以使用if-else

案例1:

>>> sample['AD'] = [8,14]
>>> ','.join(map(str, sample['AD'] if isinstance(sample['AD'], list) else list(str(sample['AD']))))
'8,14'

案例2:

>>> sample['AD'] = 5
>>> ','.join(map(str, sample['AD'] if isinstance(sample['AD'], list) else list(str(sample['AD']))))
'5'

相关问题 更多 >