我想为一个不要求节点的输入创建一个2D数组,并为每个节点接受来自用户的2个值x坐标和y坐标并生成其2D数组,其中包含3列节点,x坐标,y坐标。
输入:
enter the number of nodes:3
10 12
12 13
5 6
输出
[A 10 12
B 12 13
C 5 6 ]
答案 0 :(得分:0)
定义2个功能:
def foo(node):
return [node]+[int(i) for i in input('for node: %s: '%node).split()]
def foobar():
n = input('enter the number of nodes:')
n = int(n)
alist=[]
for i,n in zip(range(n),'ABCDEF'):
alist.append(foo(n))
return alist
并获得一个列表列表,每个列表基于您的输入:
In [348]: foobar()
enter the number of nodes:3
for node: A: 10 12
for node: B: 12 13
for node: C: 5 6
Out[348]: [['A', 10, 12], ['B', 12, 13], ['C', 5, 6]]
混合使用节点名称字符串和数字不能构成一个很好的numpy数组。
它可以变成字符串数组。或object
dtype数组。或结构化数组。或者更好的是,一个节点名称数组,另一个只有2列的2d坐标。