假设我有一个包含索引的列表列表[[start, end], [start1, end1], [start2, end2]].
例如:
[[0, 133], [78, 100], [25, 30]].
如何检查列表之间的重叠并删除每次更长的列表?所以:
>>> list = [[0, 133], [78, 100], [25, 30]]
>>> foo(list)
[[78, 100], [25, 30]]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止尝试做的事情:
def cleanup_list(list):
i = 0
c = 0
x = list[:]
end = len(x)
while i < end-1:
for n in range(x[i][0], x[i][1]):
if n in range(x[i+1][0], x[i+1][1]):
list.remove(max(x[i], x[i+1]))
i +=1
return list
Run Code Online (Sandbox Code Playgroud)
但除了令人费解之外它还没有正常工作:
>>>cleanup_list([[0,100],[9,10],[12,90]])
[[0, 100], [12, 90]]
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
编辑:
其他例子是:
>>>a = [[0, 100], …Run Code Online (Sandbox Code Playgroud) 这可能是一个非常愚蠢的问题,但是可以使用"mv"命令删除文件吗?我问,因为当我试图将文件移动到其父目录时,我不小心输入了一个"." 太多,现在我找不到我的文件.
所以代替:
$ mv myfile.txt ..
我放了:
$ mv myfile.txt ...
现在我的文件消失了.我是否意外删除了它,是否有可能将其取回?
谢谢!
我在解析包含字母和数字的字符串并获取列表时遇到问题.例如:
>>> s = '105Bii2016'
>>> foo(s)
['105', 'Bii', '2016']
Run Code Online (Sandbox Code Playgroud)
现在我只能在数字合在一起时才这样做:
def foo(s):
num, letter = '', ''
for i in s:
if i.isdigit():
num += i
else:
letter += i
return [letter, num]
Run Code Online (Sandbox Code Playgroud)
当我这样称呼时:
>>> s = '1234gdfh1234'
>>> foo(s)
['gdfh', '12341234']
Run Code Online (Sandbox Code Playgroud)