python - 用数字列表拆分字符串

标签 python list split

我正在尝试根据列表中给定的位置拆分字符串,并将这些部分添加到新列表中。我开始于:

seq = 'ATCGATCGATCG'
seq_new = []
seq_cut = [2, 8 , 10]

我想得到:

seq_new = ['AT', 'CGATCG', 'AT', 'CG'] 

位置列表的大小和值是可变的。我该如何处理我的数据?

最佳答案

使用zipslicing 创建索引:

seq_new = [seq[start:end] for start, end in zip([None] + seq_cut, seq_cut + [None])]

这将 [None, 2, 8 , 10][2, 8, 10, None] 压缩在一起以创建索引 [(None, 2), (2, 8), (8, 10), (10, 无)]None 作为第一个索引默认为零,None 作为第二个索引默认为被切片序列的大小。

关于python - 用数字列表拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29038159/

相关文章:

perl - 拆分字符串以删除周围的 < 和 > 字符

javascript - 将数组分割成 block

python - 线程 "Driver"org.apache.spark.SparkUserAppException : User application exited with 1 中出现异常

python - 终止后从 tcpdump 子进程获取 stdout

c - 如何将整数分配给c中的指针?

python - 为什么对两个相同列表的操作最终会得到不同的结果?

R - 将多行并排连接成一行

python - Vim:警告:不输出到终端

java - 无法使用 Jython 和 mysql.connector 模块连接到 mysql 数据库

python - python有列表构造函数吗?