我的问题:
我正在尝试将两个列表词典合并到一个新词典中,为每个键交替2个原始列表的元素,以创建该键的新列表.
例如,如果我有两个词典:
strings = {'S1' : ["string0", "string1", "string2"], 'S2' : ["string0", "string1"]}
Ns = {'S1' : ["N0", "N1"], 'S2' : ["N0"]}
我想合并这两个词典,以便最终字典看起来像:
strings_and_Ns = {'S1': ["string0", "N0", "string1", "N1", "string2"], 'S2': ["string0", "N0", "string1"]}
或者更好的是,让列表中的字符串为每个键连接在一起,例如:
strings_and_Ns = {'S1': ["string0N0string1N1string2"], 'S2': ["string0N0string1"]}
(我正在尝试将DNA序列片段连接在一起.)
到目前为止我尝试过的:
压缩
for S in Ns:
newsequence = [zip(strings[S], Ns[S])]
newsequence_joined = ''.join(str(newsequence))
strings_and_Ns[species] = newsequence_joined
这不会将序列连接成一个字符串,并且字符串的顺序仍然不正确.
使用defaultdict
from collections import defaultdict
strings_and_Ns = defaultdict(list)
for S in (strings, Ns):
for key, value in S.iteritems():
strings_and_Ns[key].append(value)
这个字符串的顺序也是不正确的……
以某种方式移动每个键的列表……
for S in strings:
list = strings[S]
L = len(list)
for i in range(L):
strings_and_Ns[S] = strings_and_Ns[S] + strings[S][i] + strings[S][i]