2014-11-16 73 views
1

我在使用打印出像這樣的循環所生成的字符串形式的兩個數據結構:荏苒這兩個列表沒有做什麼,我想

之一:

11111, 
11111, 
11111, 

二:

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,'*','*'],'*'] 

誰能告訴我我做錯了什麼?

由於

回答

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 
+0

再次。這做了我想要的例子,我給了上面的例子。我正在建立的是一個解決方案,它將循環壓縮。所以說,例如你有變量1,2,3和4,想要最終的輸出是像(來自它的樣本行):11111,22222,33333,44444。我怎麼能這樣做?你可以同時壓縮兩件以上的東西嗎?還是我必須在循環中進行壓縮,每次我都要再加一件東西壓縮? – gdogg371

+0

是的,只是通過所有的名單壓縮和完全相同的代碼 –

+0

好的,非常感謝幫助。 – gdogg371

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