繁体   English   中英

将多行输入放在单独的列表中,Python

[英]Putting multiple line input in seperate lists, Python

我想编写代码以在树中找到最快的方法,但是在正确输入时遇到了麻烦。 输入不存在节点数,其后是与每个节点相邻的节点的线,最后是与起始和结束节点的线。

6
1 4
0 2 4
1 3
2 4 5
0 1 3
3
0 3

这将是6个节点,节点0将与节点1和4连接,节点1与节点0,节点2和节点4连接,依此类推,我们想找到从节点0到节点3的路径。

到目前为止,我有

numberofnodes=int(input())
no_of_lines = numberofnodes
lines = ""
for i in range(numberofnodes):
    lines+=input()+"\n"
startfinish=(input().split())

如果我打印节点,线和开始完成的数量,我得到

6
1 4
0 2 4
1 3
2 4 5
0 1 3
3

['0', '3']

我也一直试图在列表中获取节点的邻居,所以我的其余代码也可以工作,但是我遇到了麻烦。 我尝试过的所有操作都将它们都放在一个列表中,但我希望将它们放在单独的列表中。

首先,在树中找到最快的(可能是最短的)路径(路径)是胡说八道,因为每个节点只有一条路径。 你可能想这样做,在图表( 是一种特殊类型的图表 )。

除了术语,从空列表lines = [] ,它将保留其他列表。 在for循环中,您还需要像处理最后一个一样分割线,将字符串解释为数字可能很有用。 您可以使用append将项目添加到列表中,请参阅文档

lines = []
for i in range(numberofnodes):
    line = []
    for word in input().split():
        line.append(int(word))
    lines.append(line)

打印lines (现在是列表列表,即嵌套列表)输出如下:

[[1, 4], [0, 2, 4], [1, 3], [2, 4, 5], [0, 1, 3], [3]]

看一下列表上的一些基本的python教程,并逐步解决更难的练习,在完全了解如何使用列表之前,不要尝试编写难题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM