任务是:
给定一个字符串列表。有必要从列表中删除每隔一个元素。例如:
['1', '2', '3', '4'] => ['2', '4']
['qwerty', 'asdfg', 'zxcvb'] => ['asdfg']
我想写一个单行解决方案来解决这个问题。我的尝试:
return [i for i in spisok if spisok.index(i) % 2 == 0]
当然,该代码不适用于包含重复值的列表,因为该方法返回列表中第一个匹配项的list.index()索引。当然,用多行代码很容易解决这个问题,比如
i = 1
while index < len(spisok):
del spisok[i]
i += 1
return spisok
但是,是否有一个单一的解决方案可以解决这个问题呢?我想知道
- 最简洁的解决方案
- 最清晰的解决方案
- 最令人困惑的解决方案(☻)
结论
在令人困惑(同时又低效)的解决方案的存钱罐中:)
还有一个,希望足够令人困惑:
您可以删除每隔一个元素:
我将添加作为一个选项(尽管评论中给出了最佳选项)
它可以是这样的: