我试图弄清楚为什么我的列表在打印时看起来难看:
alfa = []
alfa.append([])
alfa.append([])
a = 0
a = float(a)
print("Input the points, one per line as x,y.\nStop by entering an empty line.")
while a == 0:
start = input()
if start == '':
a = a + 1
else:
alfa[0].append(start.split(",")[0:1])
alfa[1].append(start.split(",")[1:2])
print(alfa)
输入以下内容:
2,3
12,56
1,2
a
我明白了:
[[['2'], ['12'], ['1']], [['3'], ['56'], ['2']]]
如果我尝试在线找到的这个简单程序,则
elements = []
elements.append([])
elements.append([])
elements[0].append(1)
elements[0].append(2)
elements[1].append(3)
elements[1].append(4)
print(elements[0][0])
print(elements)
我明白了:
[[1, 2], [3, 4]]
为什么这个结果比我的要整洁?
答案 0 :(得分:4)
尝试:
alfa[0].append(int(start.split(",")[0]))
alfa[1].append(int(start.split(",")[1]))
>>>[[2, 12, 1], [3, 56, 2]]
因为input()
会将输入解释为字符串,所以您得到了引号。它不知道您要键入的内容是数字,所以它必须以默认方式处理它。您必须告诉代码输入应解释为int
。
其次,当您使用[0:1]
获取由0到0的条目组成的数组时,您要对数组进行切片,这与直接获取元素0相同,只是您得到的数组中只有一个元素而不只是您想要的元素。本质上,您是在插入[2]
而不是2
。
答案 1 :(得分:1)
输入的数据是字符串,如引号所示。输入后将字符串转换为整数。如果要使用[1,2]格式而没有多余的括号,则需要将数字放在alfa [0]和alfa [1]等中。
alfa = []
alfa.append([])
alfa.append([])
a = 0
a = float(a)
print("Input the points, one per line as x,y.\nStop by entering an empty line.")
while a == 0:
start = input()
if start == '':
a = a + 1
else:
alfa[0].append(int(start.split(",")[0]))
alfa[1].append(int(start.split(",")[1]))
print(alfa)
哦,我看到@Andrew McDowell击败了我。好了,你还是去...