【问题标题】:Why my python program returning different Output on every execution [duplicate]为什么我的python程序在每次执行时返回不同的输出[重复]
【发布时间】:2021-12-05 08:20:27
【问题描述】:

我一直在挑战从列表中找到亚军分数

你可以说我试图从列表中找到第二大的。

array = '57 57 -57 57'

print(list(set(sorted(array.split(' '))))[-2])

但在每次执行时程序返回不同的输出。

  • 第一次执行时返回57
  • 第二次执行时返回-57
  • 第三第四第五第六第七执行它返回57
  • 在第八次执行时再次返回-57

为什么会这样?

【问题讨论】:

  • 集合不是有序的数据结构。我不太确定您为什么要使用 set - 您是否应该删除重复项?
  • @jonrsharpe 同意删除重复项

标签: python python-3.x list list-manipulation


【解决方案1】:

改成这样:

array = '57 57 -57 57'

print(list(sorted(set(array.split(' '))))[-2])

'set'不保留顺序,所以先获取set值再排序。

【讨论】:

  • 我猜,list 现在变得多余了,因为sorted 已经返回了一个列表。
  • @bereal 不再需要将整个东西包装在列表中。
  • @KunalTanwar 这正是我所说的。
猜你喜欢
  • 2014-12-06
  • 2016-01-24
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 2022-01-16
相关资源
最近更新 更多