用于打印返回值的Python可以是列表或int
我正在使用pyVCF读取VCF文件,返回的用于打印返回值的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
示例['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
。