python中怎么用键盘输入邻接点
时间: 2024-10-23 15:12:13 浏览: 16
在Python中,你可以通过`input()`函数来获取用户从键盘输入的邻接点数据。如果你需要构建一个图,比如表示为邻接矩阵或者邻接列表,可以设计一个循环,让用户逐个输入节点及其相应的邻居。这里以邻接列表为例:
```python
def create_graph():
graph = {} # 创建空的邻接字典
while True:
node = input("请输入一个节点(输入'q'退出):")
if node.lower() == 'q':
break # 用户输入'q'结束输入
neighbors = input(f"节点'{node}'的相邻节点是(用逗号分隔):")
neighbors = [neighbor.strip() for neighbor in neighbors.split(',')] # 去除空格并分割邻居
graph[node] = neighbors # 将节点和其邻居添加到图中
return graph
# 调用函数创建图
graph = create_graph()
```
在这个例子中,用户会不断被提示输入节点和该节点的邻居,直到他们选择退出。每次输入完成后,程序都会更新邻接表。
相关问题
请输出无向连通图顶点v的度及其所有邻接点。 输入格式: 有多组测试数据,每组数据请依次输入图中各顶点的值,每个顶点值以回车间隔,并以#作为输入结束符;再请依次输入图中每条边的两个顶点值,两个顶点值以空格作为间隔,每输入一组后进行换行,仍以#结束输入;最后一行为某顶点v。 输出格式: 每组输出占两行,第一行为顶点v的度,第二行按字母表顺序输出顶点v的邻接点,每两个邻接点之间有一逗号。 输入样例: 在这里给出一组输入。例如: A B C D E F # A B A F B C B D C E D E # B 输出样例: 在这里给出相应的输出。例如: 3 A,C,D.用python编写
以下是Python3代码实现:
```python
while True:
vertices = []
edges = []
while True:
v = input()
if v == '#':
break
vertices.append(v)
while True:
e = input()
if e == '#':
break
edges.append(e.split())
v = input()
# 构建邻接表
adj_list = {v: [] for v in vertices}
for e in edges:
adj_list[e[0]].append(e[1])
adj_list[e[1]].append(e[0])
# 输出度和邻接点
print(len(adj_list[v]))
adj_nodes = sorted(adj_list[v])
print(','.join(adj_nodes))
if input() == '#':
break
```
注:为了方便输入和输出,本代码中使用了多次循环读入和输出。每组数据以输入顶点值为结束符“#”,最后以输入顶点v为结束符“#”。
阅读全文