【发布时间】:2013-07-07 15:57:24
【问题描述】:
我需要从元组列表中生成一个列表:
a = [(1,2), (1,3), (2,3), (2,5), (2,6), (3,4), (3,6), (4,7), (5 6), (5,9), (5,10), (6,7)
(6.10) (6.11) (7.8) (7.12) (8.12) (9.10) (10.11)]
规则是:
- 我有任何 (begin = random.choice (a)) 的记录
- 新列表中的项目必须具有以下关系:
列表中每个元组的最后一项必须等于要插入的下一个元组的第一项。
有效输出示例(从元组 (3.1) 开始):
[(3, 1), (1, 2), (2, 3), (3, 4), (4, 7), (7, 8), (8, 12), (12, 7), (7, 6), (6, 2), (2, 5), (5, 6), (6, 10), (10, 5) (5, 9), (9, 10), (10, 11), (11, 6), (6, 3)]
我该怎么做?它使用列表推导吗? 谢谢!
【问题讨论】:
-
为什么不包括
(6, 7)?(6, 3)哪里来的? -
我不明白您如何在输出中获取
(8, 12)之后的值。您是否正在向后扫描a列表?否则正确的输出将只是[(1, 2), (2, 3), (3, 4), (4, 7), (7, 8), (8, 12)]。 -
@Bakuriu,好吧,确切的输出取决于随机的
begin元组。但是,是的,输出列表不包括所有原始元组。