如何正确布局绘图



这就是我目前所拥有的:

text="Enter data:"+"n"
num=input(text).split()
num.sort(key=float)    

list = []
def plot():
for x in num:
if x not in list:
list.append(x)
if len(x) == 3:
print('n%s -'%x[:-2], end=' ')  
print((x)[-1], end=' ')
else:
print('n%s -'%x[:-1], end=' ')  
print((x)[-1], end=' ')
plot()

当输入=12 31 10 42 69 35时,此代码的输出为:

1-0
1-2
3-1
3-5
4-2
6-9

但我希望第一个数字只打印一次,然后是相应的第二个数字(按递增顺序(,如下所示:

1-0 2
3-1 5
4-2
6-9

我在这里错过了什么?感谢您的帮助。

虽然完全同意zvone的评论,但这里有一个快速更正可以让你的代码正常工作:

text="Enter data:"+"n"
numbers=input(text).split()
numbers.sort(key=float)
first_numbers = []
def plot():
for current_number in numbers:
if current_number[0] not in first_numbers:
first_numbers.append(current_number[0])  # first number logging
if len(current_number) == 3:
print('n%s -' % current_number[:-2], end=' ')
else:
print('n%s -' % current_number[:-1], end=' ')
print(current_number[-1], end=' ')
else:  # first number has already been printed, only print the second
print(current_number[-1], end=' ')
plot()

试试这个:

text="Enter data:"+"n"
num=input(text).split()
num.sort(key=float)
def plot():
current = None
for x in num:
x = str(x)
if x[:1]==current:
print(f" {x[1:]}", end="")
else:
print()
print(f"{x[:1]} - {x[1:]}", end="")
current = x[:1]
plot()

text="Enter data:"+"n"
num=input(text).split()
num.sort(key=float)
lst = {}
def plot():
for x in num:
x = str(x)
value = lst.get(x[:1], [])
value.append(x[1:])
lst[x[:1]] = value
for key, val in lst.items():
xx = " ".join(val)
print(f"{key} - {xx}")
plot()

最新更新