我有以下几点
(4, 7),(5, 2),(4, 6),(4, 8)
我希望它们按照下面的顺序打印而不使用sort
(4, 6)
(4, 7)
(4, 8)
(5, 2)
在原始问题中,它说使用内置函数对值进行排序 但是没有被"排序"执行。 我的代码是 -
l=set({})
m=set({})
n=set({})
o=set({})
o1=set({})
o2=set({})
x=set({})
x1=set({})
x2=set({})
y=set({})
a=int(input())
b=int(input())
i=1
while i<=8:
d=[i,b]
l.add(tuple(d))
e=[a,i]
m.add(tuple(e))
i=i+1
n=l|m
p=int(input())
q=int(input())
i=1
while i<=8:
ab=[i,q]
o.add(tuple(ab))
cd=[p,i]
o1.add(tuple(cd))
i=i+1
i=0
while i<=8:
de=[p+i,q+i]
if de[0]>8 or de[1]>8:
break
else:
o2.add(tuple(de))
i=i+1
i=0
while i<=8:
ef=[p-i,q-i]
if ef[0]<1 or ef[1]<1:
break
else:
x.add(tuple(ef))
i=i+1
i=0
while i<=8:
gh=[p-i,q+i]
if gh[0]<1 or gh[1]>8:
break
else:
x1.add(tuple(gh))
i=i+1
i=0
while i<=8:
hg=[p+i,q-i]
if hg[0]>8 or hg[1]<1:
break
else:
x2.add(tuple(hg))
i=i+1
y=o|o1|o2|x|x1|x2
cs=n&y
from pprint import pprint
final=list(cs)
for i in range(len(final)):
pprint(final[i])
我知道它太大了。 我正在使用pprint仍未获得所提及的输出。 输入值是a = 4,b = 2,p = 5,q = 7
答案 0 :(得分:1)
内置插件sorted
和sort
可用,并且按我理解的方式排序,首先是第一个元素,然后是第二个元素。
您可以使用sort
修改积分列表:
points = [(4, 7),(5, 2),(4, 6),(4, 8)]
points.sort() # Modifies points
print(points)
# outputs [(4, 6), (4, 7), (4, 8), (5, 2)]
或者使用sorted
,它会输出一个新的有序列表:
points = [(4, 7),(5, 2),(4, 6),(4, 8)]
points_sorted = sorted(points) # Creates a new list and saves it as points_sorted
print(points_sorted)
# outputs [(4, 6), (4, 7), (4, 8), (5, 2)]
如果您需要另一个订购逻辑,则必须向sort
/ sorted
添加一个参数,我可以为您提供帮助。