Python 从字符串列表创建新的子字符串列表

Python 从字符串列表创建新的子字符串列表,python,list,substring,Python,List,Substring,python中有没有一种简单的方法可以从字符串列表创建子字符串列表 例如: 原始列表:['abcd','efgh','ijkl','mnop'] 子字符串列表:['bc','fg','jk','no'] 我知道这可以通过一个简单的循环来实现,但是在python中有没有更简单的方法(可能是一行程序)?使用切片和列表理解: >>> lis = ['abcd','efgh','ijkl','mnop'] >>> [ x[1:3] for x in lis] ['bc

python中有没有一种简单的方法可以从字符串列表创建子字符串列表

例如:

原始列表:
['abcd','efgh','ijkl','mnop']

子字符串列表:
['bc','fg','jk','no']


我知道这可以通过一个简单的循环来实现,但是在python中有没有更简单的方法(可能是一行程序)?

使用
切片
列表理解

>>> lis = ['abcd','efgh','ijkl','mnop']
>>> [ x[1:3] for x in lis]
['bc', 'fg', 'jk', 'no']
切片:

>>> s = 'abcd'
>>> s[1:3]      #return sub-string from 1 to 2th index (3 in not inclusive)
'bc'

通过混合使用切片和列表理解,您可以这样做

listy = ['abcd','efgh','ijkl','mnop']
[item[1:3] for item in listy]
>> ['bc', 'fg', 'jk', 'no']
你可以用一个班轮

使用、和相对位置,然后可以修剪每个项目中的第一个和最后一个字符

>>> l = ['abcd','efgh','ijkl','mnop']
>>> [x[1:-1] for x in l]
['bc', 'fg', 'jk', 'no']

如果你多次这样做,考虑使用一个函数:

def trim(string, trim_left=1, trim_right=1):
    return string[trim_left:-trim_right]

def trim_list(lst, trim_left=1, trim_right=1):
    return [trim(x, trim_left, trim_right) for x in lst] 

>>> trim_list(['abcd','efgh','ijkl','mnop'])
['bc', 'fg', 'jk', 'no']

如果您想在一行中完成此操作,可以尝试以下操作:

>>> map(lambda s: s[1:-1], ['abcd','efgh','ijkl','mnop'])

可以有许多子字符串。您仅从索引[1-2]中显示。。你有具体的案子吗。该死,比我快一点!:)谢谢,有效:)(由于某种原因,我要到11分钟后才能接受你的回答)