丑陋的二维列表。为什么?
Ugly 2 dimensional list. Why?
我想弄清楚为什么我的列表在打印时看起来很难看:
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]]
为什么这个结果比我的整齐很多?
尝试:
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, 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 在这一点上击败了我。好吧,无论如何,你去...
我想弄清楚为什么我的列表在打印时看起来很难看:
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]]
为什么这个结果比我的整齐很多?
尝试:
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, 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 在这一点上击败了我。好吧,无论如何,你去...