python - 在Python中将字典转换并处理为矩阵

标签 python

我在 python 中有一个很大的列表,如下例所示:

小例子:

['GAATTCCTTGAGGCCTAAATGCATCGGGGTGCTCTGGTTTTGTTGTTGTTATTTCTGAATGACATTTACTTTGGTGCTCTTTATTTTGCGTATTTAAAAC', 'TAAGTCCCTAAGCATATATATAATCATGAGTAGTTGTGGGGAAAATAACACCATTAAATGTACCAAAACAAAAGACCGATCACAAACACTGCCGATGTTTCTCTGGCTTAAATTAAATGTATATACAACTTATATGATAAAATACTGGGC']

我想创建一个新列表,其中每个字符串都将转换为新列表,并且每个列表都有一些元组。事实上,我想将每个字符串的长度除以10。第一个元组将是(1, 10)第二个元组将是(10, 20)直到结束,具体取决于字符串的长度。最后,每个字符串都将是一个元组列表,最后我将得到一个列表列表。 在这个小示例中,第一个字符串100个字符第二个字符串150个字符。 例如,小示例的预期输出为:

new_list = [[(1, 10), (10, 20), (20, 30), (30, 40), (40, 50), (50, 60), (60, 70), (70, 80), (80, 90), (90, 100)],  [(1, 10), (10, 20), (20, 30), (30, 40), (40, 50), (50, 60), (60, 70), (70, 80), (80, 90), (90, 100), (100, 110), (110, 120), (120, 130), (130, 140), (140, 150)]]

为了制作这样的列表,我编写了以下代码,但它没有返回我所期望的结果。你知道如何解决吗?

mylist = []
valTup = list()
for count, char in enumerate(mylist):
    if count % 10 == 0 and count > 0:
        valTup.append(count)
    else:
        new_list.append(tuple(valTup))

最佳答案

我建议使用包boltons

boltons.iterutils

boltons.iterutils.chunked_iter(src, size) 返回以下片段 size 大小的 block 中的源可迭代(此示例已复制 来自文档):

>>> list(chunked_iter(range(10), 3))
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

示例:

从boltons.iterutils导入chunked_iter

adn = [
    'GAATTCCTTGAGGCCTAAATGCATCGGGGTGCTCTGGTTTTGTTGTTGTTATTTCTGAATGACATTTACTTTGGTGCTCTTTATTTTGCGTATTTAAAAC', 
    'TAAGTCCCTAAGCATATATATAATCATGAGTAGTTGTGGGGAAAATAACACCATTAAATGTACCAAAACAAAAGACCGATCACAAACACTGCCGATGTTTCTCTGGCTTAAATTAAATGTATATACAACTTATATGATAAAATACTGGGC'
    ]

result = []

for s in adn:
    result.append(list(chunked_iter(list(s), 10)))

print(result)

关于python - 在Python中将字典转换并处理为矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52950522/

相关文章:

python - 谷歌云愿景,将线条组合在一起

python - 在 plone 上上传文件并通过 python 脚本下载它们?

python - 两个序列到序列模型keras之间的区别(有和没有RepeatVector)

python - 用于列表中参数的 Django Queryset 过滤器

python - 在对数对数图上插入一条直线 (NumPy)

python - 图的节点数不匹配

python - 在 Mac OS X 中使用 Python 自动授权 Google Drive

python - 将列表列转换为 Pandas 中的字符串

python - 根据 Pandas 中的参数将列的值更改为 1 或 0

python - 在 Python 中重新加载内置函数