代码之家  ›  专栏  ›  技术社区  ›  dekt

如何在列表的项目之间获取项目?

  •  2
  • dekt  · 技术社区  · 6 年前

    我的代码有问题。

    假设我有一个列表:

    [name,A,name1,B,name2,name3,C, name5, notname]

     string = ''  
     for i in range(o, len(list_)):
    
           if(list_[h] == 'A'):
               while list_[h]!='B':
                      string+=list_[h]
                      i+=1
    

    但是用这个代码,我得到了其他的值。我还想得到B和C下的名字,直到它停在 notname

    预期输出是将字母表之间的所有字符串连接起来:

    A: name1
    B: name2name3
    C: name5
    

    诺特名 不惜一切代价

    2 回复  |  直到 6 年前
        1
  •  0
  •   Mehrdad Pedramfar    6 年前

    试试这个:

    names  = ['name','A','name1','B','name2','name3','C', 'name5', 'notname']
    keys = ['A','B', 'C']
    
    result={}
    current=''
    for i in names:
        if i in keys:
            current = i
            result[current] = []
        elif current and i!='notname':
            result[current].append(i)
    

    那么结果将是:

     {'A': ['name1'], 'B': ['name2', 'name3'], 'C': ['name5']}
    

    for k,v in result.items():
        print(k +': ' +''.join(v) )
    
        2
  •  0
  •   Johny Jose    6 年前

    namelist = ['name1','A','name2','B','name3','name4','C', 'name5', 'notname']
    alphabets = set(['A','B','C'])
    result = {}
    start = None
    for index, item in enumerate(namelist[:-1]):
        if(item in alphabets):
            if(start):
                result[namelist[start-1]] = ''.join(namelist[start:index])
            start = index+1
    result[namelist[start-1]] = ''.join(namelist[start:index+1])
    print(result)