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

Python中在字符串中包含列表索引的方法[duplicate]

  •  0
  • lmocsi  · 技术社区  · 7 年前

    有没有更简单的方法(没有for循环)将列表索引包含在联合字符串中?

    sep = ' - '
    a = 'apple - banana - lemon - melon'
    b = a.split(sep)
    c = ''
    
    for item in b:
        c += str(b.index(item)+1)+'.'+item+sep
    
    d = c[:len(c)-len(sep)]
    print(d)
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Jab    7 年前

    如果你想避开for循环,我认为你需要的是:

    有关更多信息,请查看: enumerate ,和 join

    sep = ' - '
    a = 'apple - banana - lemon - melon'
    b = a.split(sep) #Turns the string into a list of “items
    
    b = enumerate(b) #Turns the items list into [(item_index, item), ...]
    c = f"{b[1]}.{b[0]}" #Formats item.index how you were
    d = sep.join(c) #puts them all together in a neat little string separated by “sep”
    
    e = d[:len(d)-len(sep)]
    print(e)
    

    但这一步一步的简单分解。下面是 b , c ,和 d

    sep = ' - '
    a = 'apple - banana - lemon - melon'
    
    b = enumerate(a.split(sep))
    c = sep.join(f"{b[1]}.{b[0]}")
    
    d = c[:len(c)-len(sep)]
    print(d)
    

    不过,如果我没弄错的话 list comprehension

    编辑: 功劳归于@Patrick Haugh。对于列表理解。

    d = sep.join('{}.{}'.format(i, s) for i,s in enumerate(a.split(sep), start=1)
    

    我也在你的基础上修正了我的,因为我加入了str和int,我的想法是他试图不使用for循环。