【问题标题】:Slicing strings切片字符串
【发布时间】:2026-01-24 01:35:02
【问题描述】:

在 python 中,我想以这样一种方式对列表中的字符串进行切片,即必须删除/拼接出该列表中的前几个字符。

a=['hello', 'things', 'becoming', 'expensive']

如何从列表中的每个字符串中删除前两个字符以获取输出

['llo', 'ings', 'coming', 'pensive']

【问题讨论】:

标签: python list slice


【解决方案1】:
a=['hello', 'things', 'becoming', 'expensive']
b = []

for word in a:
    b.append(word[2:])


print(b)

结果:

['llo', 'ings', 'coming', 'pensive']

这件作品:

word[2:] 

表示从索引 2 开始并将所有内容返回到它的右侧。索引从 0 开始,所以前 2 个字母被忽略

【讨论】:

    【解决方案2】:

    有几种方法可以做到这一点,但背后的想法是相同的,将字符串视为一个字符序列,并从第三个(索引 2,因为列表从 0 开始)直到结尾,使用 @ 987654321@ 范围表示法。

    迭代:

    for idx, word in enumerate(a):
        a[idx] = word[2:]
    

    理解列表:

    a = [word[2:] for word in a]
    

    地图

    a = list(map(lambda word: word[2:], a))
    

    可能还有其他方法,但这些是最常见的。

    【讨论】:

      【解决方案3】:
      a =['hello', 'things', 'becoming', 'expensive']
      for char in  a :
          a[a.index(char)] = char[2:]
      print(a)
          
      

      【讨论】:

      • 代替a.index(char),使用enumerate:for idx, char in enumerate(a):
      • 是的,它有很多解决方案,但是这个鳕鱼更容易。
      • 感谢 Payam 和其他所有人的精彩回答。它确实对我有用,但是,我想知道,如果此列表中的所有字符串都是多行字符串,为什么我不能使用相同的代码?那么这段代码的修改是什么????
      • 感谢 Payam 和其他所有人的精彩回答。它确实对我有用,但是,我想知道,如果此列表中的所有字符串都是多行字符串,为什么我不能使用相同的代码?那么这段代码的修改是什么????