我有一个以下结构的字典列表:
myList=[{"ID": someString, "sequence": someString2, "quality":[5,6,7]},{...,'quality':[55,66,77]},...]
质量有一个数字列表作为价值。第一个数字表示位置0的质量,第二个数字表示位置1等。
我想创建以下结构的每位置质量字典:
qualityDict={0:[5,55], 1:[6,66],2:[7,77] etc}
我的想法:
qualityDict={}
for entryDict in myList:
qualityDict={pos:[entryDict['quality'][pos]] if pos not in qualityDict.keys() else qualityDict[pos].append(entryDict['quality'][pos]) for pos in range(0,len(entryDict['quality']))}
qualityDict构建为pos:[value]字典,用于范围内的每个pos(0,当前质量的长度)。如果密钥尚未出现在dict中,则设置它并设置值,如果它存在,我想追加到该值。
因此,在第一次迭代之后,例如,我有一个带有0,1,2,3 ......第一质量长度(被迭代)的字典作为键,每个键都有一个带有一个值的列表。在第二次迭代中,我想将当前质量附加到现有值的列表中。
我收到附加部分的错误:'NoneType'对象没有属性追加
我错过了什么?谢谢 :)
更新:myList,它创建了错误:
[{'name': '@SRR587217.1 1 length=489', 'sequence': 'NTCCGGATGATGTCGCTGTTGCTGACAATGGTAATACGTTGACGGGGCAATATGCAGTTCGCTGCATACCGGTCCGACCCCGTACTGCTCACGCAGCTTATCCAGCAGTGGCATCATTTTTTCCAGAGGCGGTCGAACTCCGCCTTCGCAAAAAAAAAGGGAGCCCGGCGGAGGAGAACGTTACTGCGGCGGAGGTTACGATTTTTCCGGTTCCGCTCCTTTAGAAGCCGGACGTCTACCCGGCTCTTTTTGCTGAACGTCAGCGTCTGAAAGAGCTGGAACGTGAAAATCGTGAACTGCGCCGCAGTAACGATATCCTTCGCCAGGCTTCCGCTTATTTTGCGAAGGCGGAGTTCGACCGCCTCTGGAAAAAATGATGCCACTGCTGGATAAGCTGCGTGAGCAGTACGGGGTCGGACCGGTATGCAGCGAACTGCATATTGCCCCGTCAACGTATTACCATTGTCAGCAACAGCGACATCATCCGGA', 'optional': '+SRR587217.1 1 length=490', 'quality': [2, 20, 27, 30, 30, 30, 30, 30, 35, 33, 35, 35, 35, 35, 33, 35, 38, 38, 38, 38, 38, 38, 40, 40, 40, 39, 39, 40, 40, 40, 40, 37, 38, 37, 39, 39, 39, 40, 40, 39, 40, 39, 40, 39, 38, 39, 39, 39, 39, 40, 38, 39, 39, 39, 37, 39, 40, 40, 40, 40, 40, 39, 39, 39, 39, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 36, 39, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 36, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 13, 6, 6, 6, 8, 15, 9, 9, 16, 8, 13, 23, 8, 15, 9, 9, 8, 8, 13, 13, 30, 9, 6, 20, 13, 6, 8, 15, 8, 9, 8, 13, 8, 23, 13, 23, 6, 13, 6, 6, 6, 20, 8, 8, 9, 9, 9, 8, 9, 15, 9, 8, 9, 9, 9, 8, 13, 6, 6, 6, 6, 6, 6, 15, 9, 9, 9, 8, 8, 9, 15, 8, 30, 9, 9, 9, 8, 13, 19, 6, 15, 9, 8, 13, 8, 13, 6, 16, 25, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 13, 6, 13, 15, 23, 9, 9, 9, 16, 9, 8, 6, 6, 13, 15, 9, 25, 9, 9, 9, 30, 30, 32, 32, 30, 33, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 38, 38, 39, 40, 39, 40, 40, 39, 39, 39, 40, 39, 40, 39, 39, 40, 39, 40, 40, 40, 39, 39, 39, 39, 37, 38, 39, 38, 37, 36, 37, 36, 34, 37, 32, 35, 39, 37, 39, 40, 39, 39, 37, 39, 33, 37, 38, 39, 39, 40, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 35, 35, 36, 39, 39, 39, 39, 35, 37, 37, 39, 39, 38, 20, 32, 32, 36, 36, 36, 38, 38, 38, 36, 38, 38, 38, 38, 38, 33, 35, 29, 26, 34, 38, 38, 36, 38, 36, 34, 36, 34, 36, 38, 38, 38, 36, 36, 36, 30, 30, 36, 38, 36, 38, 36, 38, 36, 36, 38, 38, 38, 38, 36, 34, 36, 34, 36, 38, 38, 38, 38, 38, 38, 38, 34, 36, 36, 36, 38, 32, 32, 35, 32, 34, 27, 29, 35, 35, 17, 23, 32, 13, 19, 8, 25, 34, 36, 38, 38, 38, 38, 29, 35, 34, 34, 36, 34, 34, 34, 36, 25, 9, 30, 34, 36, 30, 27, 23, 36, 34, 34, 34, 38, 13, 24, 34, 34, 34, 38, 30, 34, 30, 30, 34, 30, 34, 36, 34, 36, 36, 36, 9, 24, 30, 36, 29, 23, 29, 17, 23, 30, 36, 36, 30, 30, 36, 35, 38]}, {'name': '@SRR587217.2 2 length=463', 'sequence': 'NACGAACCGATTCTGTTTGGTCTGCCAATTATCATGAACCCGGTGATGTTTATCCCGTTTGTACTGGTACAACCGATTCTGGCGGCAATCACCCTGGCAGCGTACTACATGGGCATTATTCCTCCGGTGACCAATATTGCACCGTGGACCATGCCAACCGGTCTGGGAGCCTTCTTTAACACCAACGGTAGCGTCGTCGCATTGCTGGTTGCACTCTTCAACCTTGGTATCGCAACGTTAATTAATTAACGTTGCGATACCAAGGTTGAAGAGTGCAACCAGCAATGCGACGACGCTACCGTTGGTGTTAAAGAAGGCTCCCAGACCGGTTGGCATGGTCCACGGTGCAATATTGGTCACCGGAGGAATAATGCCCATGTAGTACGCTGCCAGGGTGATTGCCGCCAGAATCGGTTGTACCAGTACAAACGGGATAAACATCACCGGGTTCATGATAATTGGC', 'optional': '+SRR587217.2 2 length=486', 'quality': [2, 20, 27, 30, 30, 30, 28, 27, 27, 27, 31, 35, 30, 33, 35, 30, 37, 37, 37, 36, 37, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 34, 37, 39, 39, 36, 29, 34, 36, 39, 39, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 37, 38, 39, 39, 39, 39, 38, 38, 39, 39, 39, 39, 39, 35, 34, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 36, 37, 36, 25, 29, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 37, 33, 34, 34, 34, 36, 32, 35, 26, 29, 36, 36, 37, 36, 37, 37, 36, 37, 37, 36, 36, 37, 37, 37, 35, 36, 37, 35, 36, 37, 37, 37, 37, 37, 37, 37, 34, 36, 34, 32, 26, 35, 35, 35, 36, 36, 32, 36, 36, 37, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 36, 36, 35, 32, 30, 32, 36, 29, 30, 32, 35, 35, 36, 35, 35, 23, 36, 36, 37, 37, 37, 37, 37, 36, 37, 36, 23, 9, 25, 32, 36, 36, 36, 37, 37, 36, 36, 30, 34, 36, 36, 32, 30, 30, 36, 36, 36, 36, 36, 36, 26, 29, 32, 36, 9, 23, 34, 37, 30, 30, 30, 32, 30, 33, 33, 30, 35, 35, 35, 35, 35, 35, 35, 35, 37, 37, 37, 37, 37, 37, 34, 37, 39, 39, 40, 40, 39, 37, 37, 39, 40, 39, 38, 39, 37, 36, 37, 37, 39, 39, 39, 39, 39, 39, 39, 39, 35, 29, 29, 34, 36, 39, 39, 39, 40, 35, 26, 36, 36, 37, 36, 37, 32, 36, 39, 39, 39, 39, 39, 39, 39, 37, 37, 39, 39, 39, 39, 39, 39, 39, 37, 35, 34, 36, 32, 36, 33, 31, 35, 35, 36, 36, 36, 37, 36, 37, 37, 37, 33, 31, 34, 36, 36, 32, 33, 34, 36, 37, 36, 36, 36, 34, 32, 36, 32, 34, 32, 35, 30, 26, 35, 36, 37, 37, 25, 32, 36, 37, 37, 36, 36, 32, 36, 37, 36, 36, 36, 36, 36, 36, 36, 35, 37, 36, 29, 36, 37, 36, 36, 36, 37, 30, 32, 36, 30, 25, 34, 36, 35, 35, 35, 35, 29, 36, 34, 34, 36, 36, 36, 23, 32, 29, 32, 36, 36, 37, 37, 37, 32, 34, 36, 30, 25, 32, 36, 36, 36, 36, 36, 36, 37, 36, 25, 34, 36, 36, 36, 36, 36, 9, 30, 30, 29, 23, 23, 32, 25, 34, 32, 32, 36, 34, 9, 25, 34, 34, 36, 37]}, {'name': '@SRR587217.4 4 length=460', 'sequence': 'NTCCATGACTTCTGCACGCGTCGGCATCGGGTTAGTAATCATTGACTCCATCATCTGGGTCGCCGTGATTACCGCTCGGTTTAGCTGACGCGCACGACGGATCAACGCTTTCTGAATGCCGACCAGTTCCGGGTCGCCAATTTCCACACCGAGGTCGCCACGTGCAACCATTACCACGTCAGAGGCGAGGATGATGTCATCCATTGCATCCTGGCTGCAAACGGCTTCCGCACGTTCAACCTTGGCAACAAGTGATGCGAAAATTGTTGCCAAGGTTGAACGTGCGGAAGCCGTTTGCAGCCAGGATGCAATGGATGACATCATCCTCGCCTCTGACGTGGTAATGGTTGCACGTGGCGACCTCGGTGTGGAAATTGGCGACCCGGAACTGGTCGGCATTCAGAAAGCGTTGATCCGTCGTGCGCGTCAGCTAAACCGAGCGGTAATCACGGCGACCCAG', 'optional': '+SRR587217.4 4 length=502', 'quality': [2, 20, 20, 30, 30, 30, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 37, 37, 39, 39, 39, 39, 39, 40, 39, 39, 39, 37, 39, 39, 40, 38, 38, 39, 40, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39, 39, 40, 40, 40, 37, 39, 37, 39, 39, 39, 36, 39, 39, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 35, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 38, 38, 38, 34, 32, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 23, 25, 34, 36, 36, 38, 36, 36, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 35, 23, 29, 38, 38, 38, 38, 29, 35, 38, 36, 36, 36, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 30, 30, 30, 30, 30, 33, 33, 32, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 38, 38, 40, 40, 40, 39, 40, 39, 40, 39, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 39, 34, 37, 39, 39, 39, 38, 39, 39, 40, 39, 37, 37, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39, 38, 39, 40, 39, 40, 38, 39, 39, 34, 35, 36, 39, 39, 39, 39, 39, 30, 35, 35, 37, 37, 37, 35, 37, 39, 37, 37, 38, 38, 38, 38, 37, 37, 37, 36, 38, 38, 38, 33, 33, 38, 38, 36, 38, 34, 36, 34, 36, 36, 38, 36, 38, 38, 38, 36, 36, 38, 38, 38, 38, 38, 38, 35, 38, 38, 27, 32, 30, 34, 38, 36, 38, 38, 38, 38, 38, 23, 34, 38, 38, 36, 36, 34, 36, 38, 38, 38, 36, 34, 29, 36, 36, 36, 34, 34, 38, 36, 38, 35, 38, 38, 38, 38, 38, 19, 23, 34, 36, 36, 30, 34, 16, 30, 36, 34, 29, 17, 23, 35, 35, 35, 15, 19, 23, 34, 34, 34, 36, 36, 34, 32, 38, 38, 23, 32, 38, 38, 38]}]
亲切的问候@balderman,从他那里取的示例数字
我这样做的方式是使用collections.defaultdict
。它不会使用dict理解,但它看起来像
from collections import defaultdict
myList = [...] # as you described
qualityDict = defaultdict(list)
for entryDict in myList:
for indx, qualNum in enumerate(entryDict['quality']):
qualityDict[indx].append(qualNum)
要用dict理解来做这个,你可以为qualityDict
中的每个条目单独制作一个myList
,然后以某种方式将它们联合起来(但这可能需要更多的编码)。
编辑:一种dict理解的方式
就像我之前说的那样,用dict理解做这个的最简单的方法是为每个条目制作一个单独的qualityDict
,然后以某种方式组合它们。即
myList = [...] # as before
qualityDicts = []
# each entry gets a separate quality dict
for entryDict in myList:
qualityDicts.append(
{indx: qualNum for indx,qualNum in enumerate(entryDict['quality'])
)
# now combine, not sure of a pretty way to do it with dict comprehensions
qualityDict = {}
for qdict in qualityDicts:
for indx, qNum in qdict.items():
qualityDict[indx] = qualityDict.get(indx, []) + [qNum]
我假设你的数据结构如何。
代码如下:
myList = [{'ID': 'someString', 'sequence': 'someString2', "quality": [5, 6, 7]},
{'ID': 'someString1', 'sequence33': 'someString21', "quality": [52, 64, 77]},
{'ID': 'someString13', 'sequenc3e': 'someString213', "quality": [532, 634,
737]}]
qualityDict = {idx: val['quality'] for idx, val in enumerate(myList)}
print(qualityDict)
输出:
{0: [5, 6, 7], 1: [52, 64, 77], 2: [532, 634, 737]}
输出(基于更新的'myList'):
{0: [2, 20, 27, 30, 30, 30, 30, 30, 35, 33, 35, 35, 35, 35, 33, 35, 38, 38, 38, 38, 38, 38, 40, 40, 40, 39, 39, 40, 40, 40, 40, 37, 38, 37, 39, 39, 39, 40, 40, 39, 40, 39, 40, 39, 38, 39, 39, 39, 39, 40, 38, 39, 39, 39, 37, 39, 40, 40, 40, 40, 40, 39, 39, 39, 39, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 36, 39, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 36, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 13, 6, 6, 6, 8, 15, 9, 9, 16, 8, 13, 23, 8, 15, 9, 9, 8, 8, 13, 13, 30, 9, 6, 20, 13, 6, 8, 15, 8, 9, 8, 13, 8, 23, 13, 23, 6, 13, 6, 6, 6, 20, 8, 8, 9, 9, 9, 8, 9, 15, 9, 8, 9, 9, 9, 8, 13, 6, 6, 6, 6, 6, 6, 15, 9, 9, 9, 8, 8, 9, 15, 8, 30, 9, 9, 9, 8, 13, 19, 6, 15, 9, 8, 13, 8, 13, 6, 16, 25, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 13, 6, 13, 15, 23, 9, 9, 9, 16, 9, 8, 6, 6, 13, 15, 9, 25, 9, 9, 9, 30, 30, 32, 32, 30, 33, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 38, 38, 39, 40, 39, 40, 40, 39, 39, 39, 40, 39, 40, 39, 39, 40, 39, 40, 40, 40, 39, 39, 39, 39, 37, 38, 39, 38, 37, 36, 37, 36, 34, 37, 32, 35, 39, 37, 39, 40, 39, 39, 37, 39, 33, 37, 38, 39, 39, 40, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 35, 35, 36, 39, 39, 39, 39, 35, 37, 37, 39, 39, 38, 20, 32, 32, 36, 36, 36, 38, 38, 38, 36, 38, 38, 38, 38, 38, 33, 35, 29, 26, 34, 38, 38, 36, 38, 36, 34, 36, 34, 36, 38, 38, 38, 36, 36, 36, 30, 30, 36, 38, 36, 38, 36, 38, 36, 36, 38, 38, 38, 38, 36, 34, 36, 34, 36, 38, 38, 38, 38, 38, 38, 38, 34, 36, 36, 36, 38, 32, 32, 35, 32, 34, 27, 29, 35, 35, 17, 23, 32, 13, 19, 8, 25, 34, 36, 38, 38, 38, 38, 29, 35, 34, 34, 36, 34, 34, 34, 36, 25, 9, 30, 34, 36, 30, 27, 23, 36, 34, 34, 34, 38, 13, 24, 34, 34, 34, 38, 30, 34, 30, 30, 34, 30, 34, 36, 34, 36, 36, 36, 9, 24, 30, 36, 29, 23, 29, 17, 23, 30, 36, 36, 30, 30, 36, 35, 38], 1: [2, 20, 27, 30, 30, 30, 28, 27, 27, 27, 31, 35, 30, 33, 35, 30, 37, 37, 37, 36, 37, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 34, 37, 39, 39, 36, 29, 34, 36, 39, 39, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 37, 38, 39, 39, 39, 39, 38, 38, 39, 39, 39, 39, 39, 35, 34, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 36, 37, 36, 25, 29, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 37, 33, 34, 34, 34, 36, 32, 35, 26, 29, 36, 36, 37, 36, 37, 37, 36, 37, 37, 36, 36, 37, 37, 37, 35, 36, 37, 35, 36, 37, 37, 37, 37, 37, 37, 37, 34, 36, 34, 32, 26, 35, 35, 35, 36, 36, 32, 36, 36, 37, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 37, 37, 36, 36, 35, 32, 30, 32, 36, 29, 30, 32, 35, 35, 36, 35, 35, 23, 36, 36, 37, 37, 37, 37, 37, 36, 37, 36, 23, 9, 25, 32, 36, 36, 36, 37, 37, 36, 36, 30, 34, 36, 36, 32, 30, 30, 36, 36, 36, 36, 36, 36, 26, 29, 32, 36, 9, 23, 34, 37, 30, 30, 30, 32, 30, 33, 33, 30, 35, 35, 35, 35, 35, 35, 35, 35, 37, 37, 37, 37, 37, 37, 34, 37, 39, 39, 40, 40, 39, 37, 37, 39, 40, 39, 38, 39, 37, 36, 37, 37, 39, 39, 39, 39, 39, 39, 39, 39, 35, 29, 29, 34, 36, 39, 39, 39, 40, 35, 26, 36, 36, 37, 36, 37, 32, 36, 39, 39, 39, 39, 39, 39, 39, 37, 37, 39, 39, 39, 39, 39, 39, 39, 37, 35, 34, 36, 32, 36, 33, 31, 35, 35, 36, 36, 36, 37, 36, 37, 37, 37, 33, 31, 34, 36, 36, 32, 33, 34, 36, 37, 36, 36, 36, 34, 32, 36, 32, 34, 32, 35, 30, 26, 35, 36, 37, 37, 25, 32, 36, 37, 37, 36, 36, 32, 36, 37, 36, 36, 36, 36, 36, 36, 36, 35, 37, 36, 29, 36, 37, 36, 36, 36, 37, 30, 32, 36, 30, 25, 34, 36, 35, 35, 35, 35, 29, 36, 34, 34, 36, 36, 36, 23, 32, 29, 32, 36, 36, 37, 37, 37, 32, 34, 36, 30, 25, 32, 36, 36, 36, 36, 36, 36, 37, 36, 25, 34, 36, 36, 36, 36, 36, 9, 30, 30, 29, 23, 23, 32, 25, 34, 32, 32, 36, 34, 9, 25, 34, 34, 36, 37], 2: [2, 20, 20, 30, 30, 30, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 37, 37, 39, 39, 39, 39, 39, 40, 39, 39, 39, 37, 39, 39, 40, 38, 38, 39, 40, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39, 39, 40, 40, 40, 37, 39, 37, 39, 39, 39, 36, 39, 39, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 35, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 38, 38, 38, 34, 32, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 23, 25, 34, 36, 36, 38, 36, 36, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 38, 38, 38, 34, 38, 38, 38, 38, 38, 38, 38, 38, 35, 23, 29, 38, 38, 38, 38, 29, 35, 38, 36, 36, 36, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 36, 30, 30, 30, 30, 30, 33, 33, 32, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 38, 38, 38, 40, 40, 40, 39, 40, 39, 40, 39, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 39, 34, 37, 39, 39, 39, 38, 39, 39, 40, 39, 37, 37, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39, 38, 39, 40, 39, 40, 38, 39, 39, 34, 35, 36, 39, 39, 39, 39, 39, 30, 35, 35, 37, 37, 37, 35, 37, 39, 37, 37, 38, 38, 38, 38, 37, 37, 37, 36, 38, 38, 38, 33, 33, 38, 38, 36, 38, 34, 36, 34, 36, 36, 38, 36, 38, 38, 38, 36, 36, 38, 38, 38, 38, 38, 38, 35, 38, 38, 27, 32, 30, 34, 38, 36, 38, 38, 38, 38, 38, 23, 34, 38, 38, 36, 36, 34, 36, 38, 38, 38, 36, 34, 29, 36, 36, 36, 34, 34, 38, 36, 38, 35, 38, 38, 38, 38, 38, 19, 23, 34, 36, 36, 30, 34, 16, 30, 36, 34, 29, 17, 23, 35, 35, 35, 15, 19, 23, 34, 34, 34, 36, 36, 34, 32, 38, 38, 23, 32, 38, 38, 38]}