简体   繁体   English

Python:使用现有有序字典中的键创建一个空的字典问题

[英]Python: make an empty issue of dictionary with keys from existing ordered dict

PSet 6 DNA from CS50.来自 CS50 的 PSet 6 DNA。

I have CSV file with header and values:我有 CSV 文件和 header 和值:

name,AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG
Albus,15,49,38,5,14,44,14,12

And I have txt file with DNA sequence:我有带有 DNA 序列的 txt 文件:

AAGGTAAGTTTAGAATATAAAAGGTGAGTTAAATAGAATAGGTTAAAATTAAAGGAGATCAGATCAGATCAGATCTATCTATCTATCTATCTATCAGAAAAGAGTAAATAGTTAAAGAGTAAGATATTGAATTAATGGAAAATATTGTTGGGGAAAGGAGGGATAGAAGG

I can make an ordered dictionary from this data:我可以从这些数据中制作一个有序的字典:

OrderedDict([('name', 'Alice'), ('AGATC', '2'), ('AATG', '8'), ('TATC', '3')])

For text sequence I want to make an empty dictionary with the keys of the one made from CSV file.对于文本序列,我想用 CSV 文件的键创建一个空字典。

    newdict = dict.fromkeys(reader.keys(),[]) - doesn`t work - the dictionary is ordered. 

Is it possible to make a new dictionary from the ordered (and how to do it if possible?) or "ordinary" dictionary would be better?是否可以从有序的字典中创建一个新的字典(如果可能的话怎么做?)或者“普通”字典会更好?

With Python 3.7.使用 Python 3.7。 Is the below what you are looking for?:以下是您要查找的内容吗?:

dna_file
name,AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG
Albus,15,49,38,5,14,44,14,12

with open('/home/aklaver/dna.csv', newline=None) as dna_file:  
    header_line = dna_file.readline().rstrip().split(",")
header_line                                                                                                                                                               
['name', 'AGATC', 'TTTTTTCT', 'AATG', 'TCTAG', 'GATA', 'TATC', 'GAAA', 'TCTG']

dna_dict = dict.fromkeys(header_line, [])
dna_dict                                                                                                                                                                  
{'name': [],
 'AGATC': [],
 'TTTTTTCT': [],
 'AATG': [],
 'TCTAG': [],
 'GATA': [],
 'TATC': [],
 'GAAA': [],
 'TCTG': []}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM