如何用列表推导式提取列表中字符串指定位置字符生成新列表
提取列表中字符串指定位置字符生成新列表的解决方案
嘿,你找对方向啦!列表推导式完全能搞定这个需求,核心就是利用Python字符串的索引特性——字符串的索引从0开始,所以第1位对应索引0,第2位是1,第3位是2,直接在推导式里取值就行。
基础实现方式
先定义你的原列表:
X = ['GCA','GCC','GCT','GCG']
然后用列表推导式分别生成三个新列表:
# 提取每个字符串的第1位字符 C1 = [s[0] for s in X] # 提取每个字符串的第2位字符 C2 = [s[1] for s in X] # 提取每个字符串的第3位字符 C3 = [s[2] for s in X]
运行后就能得到你想要的结果:
- C1 =
['G', 'G', 'G', 'G'] - C2 =
['C', 'C', 'C', 'C'] - C3 =
['A', 'C', 'T', 'G']
更简洁的进阶写法
如果想一次性生成三个列表,还可以用zip函数来简化代码,效率也更高:
# zip(*X)会把每个字符串的对应位置字符打包成元组 C1, C2, C3 = zip(*X) # 如果需要列表类型而非元组,再转换一下 C1, C2, C3 = list(C1), list(C2), list(C3)
这个方法尤其适合原列表元素数量较多的场景,代码会更紧凑。
内容的提问来源于stack exchange,提问作者dk09
相关产品推荐
相关产品推荐

