如何从列表中分离 cam1,2,3,4,5,6 第一个图像

lst = ['Cam218-10-03_16-05-21-54.jpg',     

       'Cam318-10-03_17-04-21-54.jpg',

       'Cam418-10-03_16-04-21-54.jpg',  

       'Cam218-10-02_16-05-21-54.jpg',

       'Cam318-10-02_17-04-21-54.jpg',  

       'Cam418-10-02_16-04-21-54.jpg',

       'Cam218-10-02_16-04-08-31.jpg',  

       'Cam318-10-02_16-04-08-30.jpg', 

       'Cam418-10-02_16-04-08-30.jpg',  

       'Cam518-10-02_16-04-08-35.jpg',

       'Cam618-10-02_16-04-08-36.jpg',  

       'Cam118-10-02_16-04-09-33.jpg', 

       'Cam218-10-02_16-04-09-33.jpg',  

       'Cam318-10-02_16-04-09-33.jpg', 

       'Cam418-10-02_16-04-09-33.jpg',  

       'Cam518-10-02_16-04-09-33.jpg',

       'Cam618-10-02_16-04-09-33.jpg',  

       'Cam118-10-02_16-04-11-53.jpg', 

       'Cam218-10-02_16-04-11-53.jpg',  

       'Cam318-10-02_16-04-11-53.jpg', 

       'Cam418-10-02_16-04-08-30.jpg',  

       'Cam118-10-02_16-04-08-31.jpg', 

       'Cam518-10-02_16-04-11-53.jpg',  

       'Cam118-10-02_16-04-11-53.jpg']

从这个列表中我想要输出:


['Cam118-10-02_16-04-08-31.jpg',

 'Cam218-10-02_16-04-08-31.jpg',

 'Cam318-10-02_16-04-08-30.jpg', 

 'Cam418-10-02_16-04-08-30.jpg',

 'Cam518-10-02_16-04-08-35.jpg',

 'Cam618-10-02_16-04-08-36.jpg'] 

通过使用 Python。有人可以帮我吗?


噜噜哒
浏览 176回答 2
2回答

忽然笑

与itertools.groupby- O(n*log(n))>>> from itertools import groupby>>> [next(g) for _, g in groupby(sorted(lst), key=lambda cam: cam.partition('-')[0])]['Cam118-10-02_16-04-08-31.jpg', 'Cam218-10-02_16-04-08-31.jpg', 'Cam318-10-02_16-04-08-30.jpg', 'Cam418-10-02_16-04-08-30.jpg', 'Cam518-10-02_16-04-08-35.jpg', 'Cam618-10-02_16-04-08-36.jpg']手动跟踪重复项(输出未排序,但可能对其他读者有用)- O(n)>>> seen = set()>>> result = []>>> >>> for cam in lst:...:    model, *_ = cam.partition('-')...:    if model not in seen:...:        result.append(cam)...:        seen.add(model)...:        >>> result['Cam218-10-03_16-05-21-54.jpg', 'Cam318-10-03_17-04-21-54.jpg', 'Cam418-10-03_16-04-21-54.jpg', 'Cam518-10-02_16-04-08-35.jpg', 'Cam618-10-02_16-04-08-36.jpg', 'Cam118-10-02_16-04-09-33.jpg']

翻翻过去那场雪

您可以在对列表进行排序后设置 if 条件来检查照片标签的出现list.sort()i = 1for item in list:    if(item[3]==str(i)):        i=i+1        print(item)        continue结果是Cam118-10-02_16-04-08-31.jpgCam218-10-02_16-04-08-31.jpgCam318-10-02_16-04-08-30.jpgCam418-10-02_16-04-08-30.jpgCam518-10-02_16-04-08-35.jpgCam618-10-02_16-04-08-36.jpg如果你想在不考虑其升序的情况下获得第一次出现的项目,删除 list.sort() 将解决这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python