2015-12-02 55 views
-1

我在想,如果是,執行以下任一模塊:合併不同大小的列表。裝滿最小

A = [ A, B, C ] 
B = [ 24 ] 

C = [ (24, A), (24, B) , (24, C) ] 

感謝

+4

這在一般情況下得以確認;說'B = [24,35]'。你想要'C'成爲什麼? – DSM

+0

這是特定情況。只有B中的一個元素 –

回答

3
>>> A = ['A', 'B', 'C'] 
>>> B = [24] 

>>> import itertools 
>>> list(zip(itertools.cycle(B), A)) 
[(24, 'A'), (24, 'B'), (24, 'C')] 

如果您B['24'],不[24],嘗試:

>>> A = ['A', 'B', 'C'] 
>>> B = ['24'] 

>>> import itertools 
>>> list(zip(itertools.cycle(map(int, B)), A)) 
[(24, 'A'), (24, 'B'), (24, 'C')] 

我想你知道嗎? int對象和STR對象之間fference ...

+0

出於某種原因,我得到這個:[('2','A'),('4','B'),('2','C')] –

+0

看起來像你的' B'是'24',而不是'24'。嘗試'列表(zip(itertools.cycle(map(int,B)),A))' –

+0

謝謝隊友。 Sry Im對Python很新穎 –

2

無需任何外部模塊要求,這將在具體情況下工作:

A = ['A', 'B', 'C'] 
B = [24] 
C = zip(B * len(A), A) 
print C 

[(24, 'A'), (24, 'B'), (24, 'C')] 
+0

出於某種原因,我得到了這個:[('2','A'),('4','B'),('2','C')] –

+0

@andresAlvarado You won如果您按照我提供的代碼使用代碼(包括賦值給'A'和'B'),則不會獲得該輸出。如果您的問題指出'B'是一個字符串文字(即B ='24''),而不是* list *,我可以複製您的輸出。 –