【发布时间】:2012-07-28 18:33:53
【问题描述】:
对于 Python 列表中每次运行 x 或多个连续零,我想删除运行中的所有零,但 x 除外。如果x = 0,则删除所有零。
我在想一个 Python 函数,它接受一个列表 L 和一个数字 x 作为输入。
例如,让L = [7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 0, 8]。
- 如果
x = 0,则返回L = [7, 12, 2, 27, 10, 8] - 如果
x = 1,则返回L = [7, 0, 12, 0, 2, 0, 27, 10, 0, 8] - 如果
x = 2,则返回L = [7, 0, 12, 0, 0, 2, 0, 0, 27, 10, 0, 0, 8] - 如果
x = 3,则返回L = [7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 8] - 如果
x = 4,则返回L = [7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 0, 8](与原L相同) - 如果是
x >= 5,则返回原始 L,因为没有 5 个或更多连续零的运行。
任何帮助将不胜感激。
【问题讨论】:
-
我不确定是否有一个简洁的衬里。您可能需要遍历列表,边走边计算零,并在找到多余的零时删除它们。
-
@Max,您可以将我的答案写在一行中。不过会超过 80 个字符 :)