gpt4 book ai didi

python - 排列排序列表中的元素,使所有冗余元素位于列表的左侧/右侧

转载 作者:行者123 更新时间:2023-11-28 21:52:46 28 4
gpt4 key购买 nike

有没有比这个更好的方法来解决这个问题?
def 渲染(arr):

single_elements = []  
double_elements = []

for i in xrange(len(arr)-1):
if arr[i] == arr[i+1] or arr[i] == arr[i-1]:
double_elements.append(arr[i])
else:
single_elements.append(arr[i])

if arr[-1] == double_elements[-1]:
double_elements.append(arr[-1])
else:
single_elements.append(arr[-1])

return single_elements+double_elements

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

'''输出 arr = [1,2,4,5,6,9,3,3,3,7,7,7,7,8,8,8]'''

打印渲染(arr)

最佳答案

你不能在一行中很好地完成它,但我认为最好保留它 O(N)

>>> from itertools import groupby
>>> arr = [1,2,3,3,3,4,5,6,7,7,7,7,8,8,8,9]
>>> a, b = [], []
>>> for k, g in groupby(arr):
group = list(g)
(a if len(group)<2 else b).extend(group)


>>> print a + b
[1, 2, 4, 5, 6, 9, 3, 3, 3, 7, 7, 7, 7, 8, 8, 8]

关于python - 排列排序列表中的元素,使所有冗余元素位于列表的左侧/右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com