如何遍历不同长度的字符串列表?

时间:2014-06-22 16:28:35

标签: python string list

假设我有

lists = ["ABC","AC","CCCC","BC"]

我想要一个新列表,其中我的新列表中的项目按位置分组,基于lists对列表中的每个字符串的含义取位置0(“ABC”位置0为“A”)并制作一个串出来的。

position = ["AACB","BCCC","CC","C"]

我试试:

for i in range(0,4): want = [lists[i] for stuff in lists]

我得到了

IndexError: string index out of range

这是有道理的,因为所有字符串都是不同的大小。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

我想你可能想要这个:

import itertools
lists = ["ABC","AC","CCCC","BC"]
position = map(''.join,itertools.izip_longest(*lists, fillvalue=''))

你得到:

['AACB', 'BCCC', 'CC', 'C']

编辑:现在使用新示例......

答案 1 :(得分:2)

您可以使用此列表理解:

>>> lists = ["ABC","AC","CCCC","BC"]
>>> [''.join([s[i:i+1] for s in lists]) for i, el in enumerate(lists)]
['AACB', 'BCCC', 'CC', 'C']

使用切片表示法可防止对不存在的元素进行索引错误。