【发布时间】:2021-07-16 22:56:33
【问题描述】:
我有这个代码:
Sorted=False
while not Sorted:
Sorted=True
for x,y in enumerate(List[:-1]):
if List[x]>List[x+1]:
List[x],List[x+1]=List[x+1],List[x]
Sorted=False
然而使用
Sorted=True/False
被重复是很丑陋的,写代码会更好一些类似于:
while True:
for x,y in enumerate(List[:-1]):
if List[x]>List[x+1]:
List[x],List[x+1]=List[x+1],List[x]
break
else:break
唯一的问题是,这么早退出循环会导致循环重复多次,从而占用更多时间。有什么办法可以让代码更 Pythonic 还是我只需要让它保持原样?
【问题讨论】:
-
最好在Code Review上提问
-
使用布尔标志不会使您的代码不符合 Python 标准,有时它是表达您意图的最佳方式。对于这段代码,我跳出来的东西是大写的变量名,运算符周围没有空格,使用“List”作为变量:)
标签: python bubble-sort python-3.9