删除列表中每个值中含有info之前的所有部分
时间: 2024-05-16 10:18:35 浏览: 24
可以使用列表推导式和字符串的`split()`方法来实现。
假设我们有一个包含字符串的列表`lst`,可以使用下面的代码来删除列表中每个值中含有"info"之前的所有部分:
```python
lst = ['abc_info_123', 'def_456', 'ghi_info_789', 'jkl_101112']
new_lst = ['_'.join(x.split('_')[x.split('_').index('info'):]) for x in lst if 'info' in x]
print(new_lst)
```
输出:
```
['info_123', 'info_789']
```
解释:
- `split()`方法将每个字符串按照"_"进行分割,得到一个列表;
- `index('info')`方法获取"info"在列表中的索引;
- `join()`方法将列表中从"info"开始的部分重新拼接成一个新的字符串;
- 列表推导式生成一个新的列表,只包含原列表中含有"info"的字符串。
相关问题
列表中每个元素开头的空格删除
您可以使用列表推导式和字符串的 `lstrip` 方法来实现这个功能,具体实现方法如下:
```python
old_list = [" apple", " banana ", " orange "]
new_list = [item.lstrip() for item in old_list]
print(new_list) # 输出 ["apple", "banana ", "orange "]
```
在上面的例子中,我们使用了列表推导式来遍历旧列表中的每个元素。`lstrip` 方法可以删除字符串开头的空格和换行符等空白字符。最终得到的新列表中的元素就是旧列表中每个元素开头的空格被删除后的结果。需要注意的是,如果旧列表中的元素有的开头不是空格而是其他的空白字符,比如制表符,那么 `lstrip` 方法也可以将其删除。
列表中每个元素把开头和结尾删除
如果您想要从一个列表中的每个元素中删除开头和结尾的字符(可能是空格或其他字符),可以使用列表表达式和字符串切片来实现。具体代码如下:
```
my_list = [' hello ', ' world ', ' python ', ' list ', ' comprehension ']
trimmed_list = [s[1:-1] for s in my_list]
print(trimmed_list)
```
在上面的代码中,列表表达式`[s[1:-1] for s in my_list]`遍历了my_list中的每个字符串,并使用切片`s[1:-1]`来删除每个字符串的开头和结尾字符。最终,代码将删除开头和结尾字符后的每个字符串存储在一个名为`trimmed_list`的新列表中,并使用`print()`函数将其输出。