gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:53:28 27 4
gpt4 key购买 nike

我在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com