在python中列出如何

时间:2019-04-07 16:20:01

标签: python-2.7

我正在尝试创建一个包含原始列表的前两个元素的新列表

2 个答案:

答案 0 :(得分:0)

怎么样

# items = [5, 2, 9, 1, 7, 4, 6, 3, 8]

items[:2] + [sorted(items[i:i+3])[1] for i in range(len(items)-2)]

# [5, 2, 5, 2, 7, 4, 6, 4, 6]

答案 1 :(得分:0)

您可以编写一个辅助函数,该函数从一组输入中返回中位数:

input_list = [5, 2, 9, 1, 7, 4, 6, 3, 8]
output_list = input_list[:2]

def find_median(nums):
    ordered_list = sorted(nums)
    return ordered_list[1]

for num in range(len(input_list)-2):
    nums = [input_list[num], input_list[num+1], input_list[num+2]]
    output_list.append(find_median(nums))

print(output_list)

首先将input_list的前两个元素附加到我们的output_list中。由于您一次只能从一组3个元素中找到中位数,因此您无需一直循环到列表的末尾-可以忽略最后两个元素。然后,我们从input_list获取3个元素的组,然后将其传递给计算中位数的函数。根据定义,中位数是中间值,因此我们可以简单地按值对列表进行排序,然后返回第二个元素。然后,我们将返回的值附加到我们的output_list中。