用于打印返回值的Python可以是列表或int

用于打印返回值的Python可以是列表或int,python,types,vcf-variant-call-format,Python,Types,Vcf Variant Call Format,我正在使用pyVCF读取VCF文件,返回的示例['AD']可以是列表如[8,14]或int如5 如果我使用,'.join(map(str,sample['AD']),它将停止在int返回“TypeError:'int'对象不可编辑” 在这两种情况下,我如何编写它来打印它 对评论的答复: 只是普通代码。但是VCF文件附带了两种AD import vcf vcf_reader = vcf.Reader(filename='xxx.vcf.gz',compressed=True) for recor

我正在使用pyVCF读取VCF文件,返回的
示例['AD']
可以是
列表
[8,14]
int
5

如果我使用
,'.join(map(str,sample['AD'])
,它将停止在
int
返回“TypeError:'int'对象不可编辑”

在这两种情况下,我如何编写它来打印它


对评论的答复:

只是普通代码。但是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:

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

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

将输入值初始化为
map()

案例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'

你能改变函数,使它总是返回一个列表吗?(所以当它现在返回
5
)您使用的是pyVCF中的哪个函数?能否添加代码的相关部分?该函数名为
isinstance