【问题标题】:what is an efficient way to fulfill this simple task?完成这个简单任务的有效方法是什么?
【发布时间】:2018-01-26 15:38:48
【问题描述】:
5048,3293,5242,3290,5244,3411,5050,3414

在本例中,5048-5242-5244-5050 来自同一个“家族” 与 3293-3290-3411-3414 相同,基本上是每隔一个术语。 我想要和期望的最终结果是第一个“家庭”中的最高者,紧挨着第二个家庭的最高者,而最低者旁边的最低者具有以下最终结果。

['5242', '3414', '5048', '3290']

这可以很容易地使用 2 个列表来完成,每个列表都有一个 +2 索引,一个从 0 开始,另一个从 1 开始,等等。但是什么是真正有效的 pythonic 方式来做到这一点。

【问题讨论】:

  • 你能告诉我们你到目前为止尝试过的代码吗?

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


【解决方案1】:

我会这样做:

numbers = [5048,3293,5242,3290,5244,3411,5050,3414]

f3 = [n for n in numbers if str(n)[0] == '3']
f5 = [n for n in numbers if str(n)[0] == '5']

newList = [max(f5), max(f3), min(f5), min(f3)]

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多