以"XX到XX"的格式打印嵌套列表

lou*_*ked 1 python list

我是python的新手,所以我一直试图找出如何以下面的格式打印以下列表.我试图让它们通过索引但它似乎没有成功.

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

1. A1 to B1
2. C1 to D2 , C1 to B2 
Run Code Online (Sandbox Code Playgroud)

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

[['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']]
Run Code Online (Sandbox Code Playgroud)

ozg*_*gur 5

>>> 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
Run Code Online (Sandbox Code Playgroud)

如果列表中的元素数量为奇数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
Run Code Online (Sandbox Code Playgroud)

  • `it = iter(sequence); 拉链(它,它)` - 这是厚颜无耻的.但可能比一个偏移列表切片的开销要低得多. (2认同)