List 如何堆叠索引和给定值
输出应该如下所示:List 如何堆叠索引和给定值,list,python-3.3,indices,List,Python 3.3,Indices,输出应该如下所示: seq1_values = [5, 40, 180, 13, 30, 20, 25, 24, 29, 31, 54, 46, 42, 50, 67, 17, 76, 33, 84, 35, 100, 37, 110, 32, 112, 15, 123, 3, 130, 42] def get_num_values(): global seq1_values return len( seq1_values ) def get_v
seq1_values = [5, 40, 180, 13, 30, 20, 25, 24, 29, 31, 54, 46, 42, 50, 67, 17,
76, 33, 84, 35, 100, 37, 110, 32, 112, 15, 123, 3, 130, 42]
def get_num_values():
global seq1_values
return len( seq1_values )
def get_values():
global seq1_values
for value in seq1_values:
yield value
yield None
def next_value():
return next( next_value.values )
next_value.values = get_values()
def main():
numbers = []
value = next_value()
while value is not None:
numbers.append(value)
input_size = len(numbers)-1
for i in range(input_size):
print("|", str(input_size).rjust(4), end="")
for j in range(input_size):
print("|", str(value).rjust(4), end="")
value = next_value()
main()
你的问题不是很清楚,但据我所知,这就是你想要的:
| 0| 1| 2| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30|
| 5| 40| 180| 13| 30| 20| 25| 24| 29| 31| 54| 46| 42| 50| 67| 17| 76| 33| 84| 35| 100| 37| 110| 32| 112| 15| 123| 3| 130| 42|
您的代码对于您正在做的事情来说似乎非常复杂。您对循环使用了标记
,
,但您使用的是while循环-我建议您对循环使用该标记。您可以在seq1_值上循环,打印出所有索引,然后打印换行符,然后再执行一次并打印所有值:
>>> def myPrint(L):
... maxLen = max(len(str(n)) for n in L)
... print ("|", "|".join(" "*(maxLen-len(str(i))) + str(i) for i in range(len(L))) + "|")
... print ("|", "|".join(" "*(maxLen-len(str(n))) + str(n) for n in L) + "|")
...
>>> myPrint([5, 40, 180, 13, 30, 20, 25, 24, 29, 31, 54, 46, 42, 50, 67, 17,
... 76, 33, 84, 35, 100, 37, 110, 32, 112, 15, 123, 3, 130, 42])
| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29|
| 5| 40|180| 13| 30| 20| 25| 24| 29| 31| 54| 46| 42| 50| 67| 17| 76| 33| 84| 35|100| 37|110| 32|112| 15|123| 3|130| 42|
你让事情变得比需要的复杂得多。它闻起来像是作业,所以我将帮助您完成堆叠部分,但在这之后它仍然需要被证明是正确的,并且这不会在末尾添加管道字符,因此您必须自己解决: 在Python3中,您只需要这样做,就可以像您需要的那样堆叠它:
seq1_values = [5, 40, 180, 13, 30, 20, 25, 24, 29, 31, 54, 46, 42, 50, 67, 17,
76, 33, 84, 35, 100, 37, 110, 32, 112, 15, 123, 3, 130, 42]
def main():
for s in range(0,len(seq1_values)):
print("|",str(s).rjust(3),end="")
print("") # Gives us a new line
for s in range(0,len(seq1_values)):
print("|",str(seq1_values[s]).rjust(3),end="")
main()
什么不起作用?您调试脚本的尝试在哪里失败了?您真的需要在问题中添加更多细节。他们是如何“离开”的?什么东西不起作用?你能在python3上写这个吗?这是很难翻译的,没有得到我想要的输出desire@user88453:这是蟒蛇3。我从python3复制粘贴了一个终端会话,代码中出现了一些错误
len(值)
,应该是len(seq1\u值)
,对于len中的val(seq1\u值):应该是对于seq1\u值中的val:
for idx in range(0, len(seq1_values)):
if idx == len(values) - 1:
print('| ', idx)
else:
print('| ', idx, end='')
for val in len(seq1_values):
print('| ', val, end='')