【问题标题】:Flatten Nested Tuples in a List of a List of Nested Tuples More Pythonically以 Python 方式在嵌套元组列表的列表中展平嵌套元组
【发布时间】:2023-04-03 09:57:01
【问题描述】:

所以,我生成了一个嵌套元组列表(国际象棋移动验证器的向量)。

old_v = [[((4, 1, 'P', 'e2'), 1), ((4, 2, '1', 'e3'), 0), ((4, 3, '1', 'e4'), 0), ((4, 4, '1', 'e5'), 0), ((4, 5, '1', 'e6'), 0), ((4, 6, 'q', 'e7'), -1)]]

阅读文档herehere 后,我仍然无法弄清楚如何在不重写整个元组的情况下仅折叠每个子列表中的元组,如下所示:

new_v = [[(a[b][0][0], a[b][0][1], a[b][0][2], a[b][0][3], a[b][1]) for b in range(0, len(a))] for a in old_v]

print(new_v)

我想知道是否有更 Pythonic 的方式来做到这一点。

【问题讨论】:

  • 您在寻找哪个输出? a[0][1] 似乎很不寻常,你的意思是 a[b][1]
  • 我做到了。我会相应地调整它。
  • 可以参考文章【如何制作平面列表】(stackoverflow.com/questions/952914/how-to-make-a-flat-list-out-of-list-of -lists),@Shawn Chin 的回答

标签:
python
list
tuples
list-comprehension