Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 分裂str的听写理解_Python_Python 3.x_Dictionary_Dictionary Comprehension - Fatal编程技术网

Python 分裂str的听写理解

Python 分裂str的听写理解,python,python-3.x,dictionary,dictionary-comprehension,Python,Python 3.x,Dictionary,Dictionary Comprehension,我正试着把这个句子写下来: a='ALLELEID=677660;CLNDISDB=MedGen:C0162671,OMIM:540000,Orphanet:ORPHA550,SNOMED_CT:39925003;CLNDN=Juvenile_myopathy,_encephalopathy,_lactic_acidosis_AND_stroke;CLNHGVS=NC_012920.1:m.15992A>T;CLNREVSTAT=criteria_provided,_single_subm

我正试着把这个句子写下来:

a='ALLELEID=677660;CLNDISDB=MedGen:C0162671,OMIM:540000,Orphanet:ORPHA550,SNOMED_CT:39925003;CLNDN=Juvenile_myopathy,_encephalopathy,_lactic_acidosis_AND_stroke;CLNHGVS=NC_012920.1:m.15992A>T;CLNREVSTAT=criteria_provided,_single_submitter;CLNSIG=Likely_benign;CLNVC=single_nucleotide_variant;CLNVCSO=SO:0001483;GENEINFO=MT-TP:4571;ORIGIN=1'
这项工作:

d={}
for i in a.split(';'):
    key, val = i.split('=')
    d[key] = val
为什么这样不行

d={key: val for key, val in i.split('=') for i in a.split(';')}
尝试使用:

d={i.split('=')[0]: i.split('=')[1] for i in a.split(';')}

第二个循环是不需要的(即使您需要它,也可能是错误的,您需要将第二个循环放在第一个循环之后)。

您不能有嵌套字典理解(与嵌套列表理解不同)。以下工作将起作用:

dict(item.split("=") for item in a.split(';'))

dict()
可以从两元素列表或元组列表构建字典。

要在此处使用列表理解,您应该使用:

{key: val for i in a.split(';'), for key, val in i.split('=')}
但即使您将代码更改为此,它也无法工作,因为这是错误的:

for key, val in i.split('=')
i.split('=')
的结果是一个1d数组,您只能使用一个元素进行迭代

因此,最终,您只需要一个级别的列表理解:

{i.split('=')[0]: i.split('=')[1] for i in a.split(';')}

谢谢-这太简单了,喜欢它!