Python - 从单个字符串存储多个列表中的值

时间:2017-02-28 20:44:28

标签: python string list

我试图同时存储和更新多个列表。我在此列出字符串中的位置,即<list-1>将存储第一个位置,<list_0>将存储中间位置,<list+1>将最后位置存储在三个字母的单词中。由于我使用滚动窗口,意味着每个列表将存储序列中多个单词的字母,因此很难对所有内容进行硬编码,特别是如果窗口长度需要变量。 基本上,我想要的是这样的<for list0...listn>:<store/append character to list0 in string[0].....store/append character to listn in string s[n]> 这是我的代码:

#http://stackoverflow.com/questions/6822725/rolling-or-sliding-window-iterator-in-python
def window(iterable, size):
    iters = tee(iterable, size)
    for i in range(1, size):
        for each in iters[i:]:
            next(each, None)
    return zip(*iters)

        if(wordlength == 3):
            for each in window(temporary_string, wordlength):
                temp = ''.join(each) 
                k = temp[0]
                k = damino[k]
                p_1.append(k)
                t = temp[0]
                p_1w.append(t)
                k = temp[1]
                k = damino[k]
                p.append(k)
                t = temp[1]
                pw.append(t)
                k = temp[2]
                k = damino[k]
                p1.append(k)
                t = temp[2]
                p1w.append(t)
                word_list.append(temp)

例如,输入字符串将为:ATGGAAE

窗口大小:3

输出将是三个数组,

p-1|p|p+1
*|A|T
A|T|G
T|G|G
G|G|A
G|A|A
A|A|E
A|E|*

1 个答案:

答案 0 :(得分:0)

嗯,我做到了。我没有手动编写和更新每个索引,而是创建了一个数据框来为我分割单词,然后存储它。对于三个字母的单词,它看起来像:

df = pd.DataFrame({'p-1':dftemp['word_list'].str[0],'p':dftemp['word_list'].str[1],'p+1':dftemp['word_list'].str[2]})

虽然不是最好的解决方案,但它可以完美运行。