Python初学者练习问题:使用列表判断两个相邻元素是否相同
我得到了这些:
# D. Given a list of numbers, return a list where
# all adjacent == elements have been reduced to a single element,
# so [1, 2, 2, 3] returns [1, 2, 3]. You may create a new list or
# modify the passed in list.
def remove_adjacent(nums):
for number in nums:
numberHolder = number
# +++your code here+++
return
我现在有点卡住了。我该怎么办呢?
4 个回答
0
把现在的数字和之前的数字进行比较。如果这两个数字不一样,就把现在的数字加到一个新的列表里。然后把这个列表保存起来,以便下一个循环可以使用。
5
>>> import itertools
>>> [i[0] for i in itertools.groupby([1,2,2,3,3,3,2,2])]
[1, 2, 3, 2]
或者:
>>> def f(l):
... r = []
... last = None
... for i in l:
... if i != last:
... r.append(i)
... last = i
... return r
...
>>> f([1,2,2,3,3,3,4,4,2,2])
[1, 2, 3, 4, 2]
1
试试这个:
def remove_adjacent(nums):
removed_list = []
numberHolder = None
for number in nums:
if number != numberHolder:
removed_list.append(number)
numberHolder = number
return removed_list