我将尝试在不使用字典的情况下连接列表中元组内的值。具体来说,我有这个列表:
如果元组的第一个值与newList的最后一个值相同,则将adjList中元组的第二个值添加到newList中,即:
一切都按照预期运行,但是最终newList仅包含3个值。我还不太清楚如何重复最后的代码块,直到adjList中的元组用尽。
非常感谢您的帮助。
adjList = [('0', '3'), ('1', '0'), ('3', '2'), ('4', '2'), ('5', '4'), ('7', '9'),
('8', '7'), ('9', '6'), ('2', '1'), ('2', '6'), ('6', '5'), ('6', '8')]
我想要创建一个列表,其中包含来自随机元组的值:
newList = ['1', '0']
如果元组的第一个值与newList的最后一个值相同,则将adjList中元组的第二个值添加到newList中,即:
newList = ['1', '0', '3']
然后从adjList中删除 ('1', '0') 和 ('0', '3')。
然后我想重复此操作,直到newList中的最后一个值不再对应于adjList中元组的第一个值。我很难找到一种逻辑上的while或for循环组合来实现这一点,任何帮助将不胜感激。
到目前为止我的代码:
adjList = [('0', '3'), ('1', '0'), ('3', '2'), ('4', '2'), ('5', '4'), ('7', '9'),
('8', '7'), ('9', '6'), ('2', '1'), ('2', '6'), ('6', '5'), ('6', '8')]
firstNode = random.choice(adjList)
newList = []
newList.append(firstNode[0])
newList.append(firstNode[1])
adjList.remove(firstNode)
## I need to repeat the following block of code:
for ax,bx in adjList:
if newList[-1] == ax:
adjList.remove((ax,bx))
newList.append(bx)
break
一切都按照预期运行,但是最终newList仅包含3个值。我还不太清楚如何重复最后的代码块,直到adjList中的元组用尽。
非常感谢您的帮助。
adjList
中有许多可能的元组可供选择,该怎么办?假设随机选择的元组是('9', '6')
,那么newList
的正确值是什么? - niemmi