我有一个列表,我想要分成三个单独的列表,这些列表是从列表中的第一个,第二个和第三个位置创建的。它看起来像这样:
输入:
X = ['GCA','GCC','GCT','GCG']
输出:
C1 = ['G', 'G', 'G', 'G']
C2 = ['C', 'C', 'C', 'C']
C3 = ['A', 'C', 'T', 'G']
我在考虑使用列表理解。做类似的事情:
C1 = [p for p in X if X[0][0]]
但我不知道如何切片列表中的字符串。
感谢您的帮助。
答案 0 :(得分:1)
对于您使用理解的尝试,您只需要像
这样的代码C1 = [p[0] for p in X]
C2 = [p[1] for p in X]
C3 = [p[2] for p in X]
或使用zip():
C1, C2, C3 = zip(*X)
答案 1 :(得分:0)
使用zip()
的@Chris_Rands答案更好,但因为您还询问了列表理解:
C1=[s[0] for s in X]
作品。
[[s[n] for s in X] for n in range(3))]
会将所有这些作为列表。
输出:[['G', 'G', 'G', 'G'], ['C', 'C', 'C', 'C'], ['A', 'C', 'T', 'G']]