print(sgrades_flat)
['Barrett', 'Edan', '70', '45', '59', 'Bradshaw', 'Reagan', '96', '97', '88', 'Charlton', 'Caius', '73', '94', '80', 'Mayo', 'Tyrese', '88', '61', '36', 'Stern', 'Brenda', '90', '86', '45']
print(s_grades)
['F', 'A', 'B', 'D', 'C']
我想将sgrades_flat和s_grades组合起来,看起来像...
['Barrett', 'Edan', '70', '45', '59', 'F',
'Bradshaw', 'Reagan', '96', '97', '88', 'A'
'Charlton', 'Caius', '73', '94', '80', 'B'
'Mayo', 'Tyrese', '88', '61', '36', 'D'
'Stern', 'Brenda', '90', '86', '45', 'C']
我目前的策略是使用以下代码:
z=[]
for i, x in zip(sgrades_flat[::5], s_grades):
z.append(i+x)
print(z)
但输出是:
['BarrettF', 'BradshawA', 'CharltonB', 'MayoD', 'SternC']
3条答案
按热度按时间fsi0uk1n1#
我将通过手动迭代来合并列表:
印刷品
(this仍然看起来像是一个坏主意,因为平面列表对于这样的数据结构是次优的)
请注意,没有任何手动迭代的一行程序也执行相同的操作:
然而,为什么要把清单扁平化呢?
result是一个很好的列表列表,它接近于某种结构化数据:
ssgvzors2#
您可以使用enumerate,然后相应地对sgrades_flat进行切片:
oymdgrw73#
我们需要同时迭代
s_grades
和sgrades_flat
,每次需要迭代5个元素。我们可以使用基于sgrades_flat
长度1/5的x1m2 n1 a列表解析。然后,我们可以使用列表解析中的第二级迭代将j
绑定到i * 5
索引。或者,使用
enumerate
在s_grades
上迭代: