Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中比较并从列表中提取字符串_Python - Fatal编程技术网

在python中比较并从列表中提取字符串

在python中比较并从列表中提取字符串,python,Python,在上面的列表中,如果有两个连续的insert\u作业:('insert\u job:eee','insert\u job:fff'),那么我想先打印insert\u job:,在这种情况下,它将是insert\u job:eee,因为您需要项目的顺序,所以不需要字典。试着做下面的事情 LIST=['insert_job: aaa', 'box_name: bbb', 'insert_job: ccc', 'box_name: ddd', 'insert_job: eee', 'in

在上面的列表中,如果有两个连续的
insert\u作业:('insert\u job:eee','insert\u job:fff')
,那么我想先打印
insert\u job:
,在这种情况下,它将是
insert\u job:eee
,因为您需要项目的顺序,所以不需要字典。试着做下面的事情

LIST=['insert_job: aaa', 'box_name: bbb', 'insert_job: ccc', 
      'box_name: ddd', 'insert_job: eee', 'insert_job: fff', 
      'box_name: ggg'] 

您可以使用


使用字典准备一个名为
LIST
@Gang-Um的字典,它是一个列表。字典是{},而[]是一个列表!使用
itertools.groupby
。如果在迭代过程中有3个连续的?变异列表在很多情况下都不会正常运行,并且重复调用
remove
意味着
O(n**2)
可以在
O(n)
中很小地解决。当OP声明的目标是过滤输出时,这也会破坏原始
列表中的数据,没有迹象表明数据应该被丢弃。正确的,他不需要删除项目。我同意,推到新列表不是最佳解决方案,但更清楚的是,只有重复插入作业时才需要打印,或者除了重复的工作之外的所有工作?如果插入工作重复了5次,那么它应该打印第1个4个插入工作,并带有价值Hanks ShadowRanger,我不知道我为什么要这样做。为什么要投否决票?@-Steven Summers-我是新来的,仍然习惯于可用的选项,我没有意识到我投了否决票,这是一个错误,我现在试图改变它,但它不起作用。但我真的很感谢你的快速回答,这正是我所需要的。@Frank没关系,你现在应该可以做了。
seen = 0
for i in LIST:
    if i.startswith("insert_job"):
        if seen:
            continue
        else: 
            seen = 1
            print i
    else: 
         seen=0
         # print i
from itertools import groupby

LIST = ['insert_job: aaa', 'box_name: bbb', 'insert_job: ccc',
        'box_name: ddd', 'insert_job: eee', 'insert_job: fff',
        'box_name: ggg']

for k, g in groupby(LIST, lambda s: s.split(':')[0]):
    if k == 'insert_job':
        items = list(g)
        if len(items) > 1:
            print(*items[:-1])