所以我已经尝试这样做一段时间了,并且不断遇到不同的失败。我需要从用户那里获取数字输入并将其放入列表中并以递减值输出:
bids = []
bid = input('Bid: ')
while bid != '':
bids.append(bid)
bid = input('Bid: ')
print('The auction has finished! The bids were:')
for bid in bids:
bid = int(bid)
for bid in reversed(bids):
print(bid)
所以这在大多数时间都运行良好,(我一直使用数字 2、3、4 和 10 作为输入,因为我一直遇到问题,它以降序显示第一个数字的数字)但是当我输入 16、30、24,它显示的数字为:
The auction has finished! The bids were:
24
30
16
这是我尝试过的另一个版本:
bids = []
bid = input('Bid: ')
while bid != '':
bids.append(bid)
bid = input('Bid: ')
print('The auction has finished! The bids were:')
for bid in bids:
bid = int(bid)
bids.sort([::-1]) #Here is where the problem is at, I don't know
#what the correct syntax is for something like that
for bid in bids:
print(bid)
任何帮助将不胜感激,因为我是 python 的新手并且正在努力学习我的类(class)。
-卡勒姆
最佳答案
在你的
bids.append(bid)
你得到一个字符串列表。您想将它们转换为整数并按降序排序:
numerical_bids = [int(bid) for bid in bids]
numerical_bids.sort(reverse=True)
现在 numerical_bids
是一个按降序排列的整数列表。
在您的代码中:
for bid in bids:
bid = int(bid)
什么都不做。它将每个 bid
转换为一个整数并立即忘记它。
和
bids.sort([::-1])
不是如何使用 sort
方法。阅读 list.sort 的文档.
关于python - 反转python中的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34494963/