Skip to main content
 首页 » 编程设计

python之以 "XX to XX"格式打印嵌套列表

2025年05月04日17bluestorm

我是 python 的新手,所以我一直在尝试弄清楚如何以下面的格式打印以下列表。我试图通过索引获取它们,但似乎没有成功。

所以我有一个元组列表,需要按以下格式打印出来:

1. A1 to B1 
2. C1 to D2 , C1 to B2  

这是我需要转换为该格式的以下列表。

[['A1', 'B1'], ['C1', 'D2', 'C1', 'B2', 'C1', 'E3', 'C1', 'A3', 'C1', 'F4', 'C1', 'G5', 'C1', 'H6'], ['E1', 'D1', 'E1', 'F2', 'E1', 'D2', 'E1', 'G3', 'E1', 'H4']] 

请您参考如下方法:

>>> tuples = [['A1', 'B1'],  
...           ['C1', 'D2', 'C1', 'B2', 'C1', 'E3', 'C1', 'C2'],  
...           ['E1', 'D1', 'E1', 'F2']] 
 
>>> for i, sequence in enumerate(tuples, 1): 
...     it = iter(sequence) 
...     print(i, ', '.join('{} to {}'.format(x, y) for x, y in zip(it, it)) 
 
1 A1 to B1 
2 C1 to D2, C1 to B2, C1 to E3, C1 to C2 
3 E1 to D1, E1 to F2 

您必须替换 zip()与 itertools.izip_longest()如果列表中的元素数量是奇数:

>>> from itertools import izip_longest 
 
>>> tuples = [['A1', 'B1', 'T1'],  
              ['C1', 'D2', 'C1', 'B2', 'C1', 'E3', 'C1', 'C2', 'Z1'], 
              ['E1', 'D1', 'E1', 'F2']] 
 
>>> for i, sequence in enumerate(tuples, 1): 
...     it = iter(sequence) 
...     print(i, ', '.join('{} to {}'.format(x, y)  
...                        for x, y in izip_longest(it, it, fillvalue='X')) 
 
1 A1 to B1, T1 to X 
2 C1 to D2, C1 to B2, C1 to E3, C1 to C2, Z1 to X 
3 E1 to D1, E1 to F2