假设我有
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
这是有道理的,因为所有字符串都是不同的大小。有人可以帮忙吗?
答案 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']
使用切片表示法可防止对不存在的元素进行索引错误。