压缩这两个列表没有做我想要的

时间:2014-11-16 18:24:43

标签: python zip

我有两个数据结构,使用for循环生成的字符串形式,如下所示:

之一:

11111,
11111,
11111,

2:

22222,
22222,
22222,

然后我将onetwo放入几个列表中,以便我可以压缩它们。我还添加了一个'*'来表示数据中的换行符

one   = [11111,'*',11111,'*',11111,'*',]
two   = [22222,'*',22222,'*',22222,'*',]

one = str(one)
two = str(two)

print("'*',".join([",".join(x) for x in zip(one.split(),two.split())]))

我希望我的最终输出如此:

11111,22222
11111,22222
11111,22222

然而,我实际上使用上面的代码获得的是输出:

[11111,,[22222,'*','*',,'*','*',11111,,22222,'*','*',,'*','*',11111,,22222,'*','*'],'*']

谁能告诉我我做错了什么?

由于

2 个答案:

答案 0 :(得分:1)

只需zipjoin列表,在内部联接中使用逗号分隔,在外部使用换行符:

one = "11111,11111,11111"

two = "22222,22222,22222"


one, two = one.split(","),two.split(",")
print("\n".join([",".join(x) for x in zip(one,two)]))
11111,22222
11111,22222
11111,22222

答案 1 :(得分:1)

>>> str1 = '''11111,
... 11111,
... 11111,'''
>>> str2 = '''22222,
... 22222,
... 22222,'''
for y in [ ",".join(x) for x in zip(str1.strip(',').split(',\n'),str2.strip(',').split(',\n'))]:
...     print(y)

输出:

11111,22222
11111,22222
11111,22222

使用strip删除额外的逗号,然后split然后join