有一个字符串列表,去掉列表中的空格元素
时间: 2023-12-03 14:44:10 浏览: 107
可以使用列表推导式和字符串的 `strip()` 方法来实现。
```python
string_list = ['hello', ' world', '', 'python', ' ', 'is', 'awesome', '']
new_list = [s.strip() for s in string_list if s.strip()]
```
在上面的代码中,我们首先定义了一个包含字符串的列表 `string_list`,然后使用列表推导式生成一个新的列表 `new_list`,其中去掉了空格元素。具体来说,我们遍历原始列表中的每个字符串元素,并使用 `strip()` 方法去掉字符串两端的空格。然后,我们使用 `if` 条件语句过滤掉空字符串。
最终,`new_list` 就是我们要求的去掉空格元素的新列表。
相关问题
有一个列表col_val2,列表元素为字符串,用python去除每一个字符串里的空格和方括号并按逗号拆分为字符串,结果返回以0315或ts或tsaz开头的字符串列表。
### 回答1:
可以使用以下代码来完成:
col_val2 = [item.strip().replace('[', '').replace(']', '').split(',') for item in col_val2]
new_col_val2 = [item for item in col_val2 if item[0].startswith('0315') or item[0].startswith('ts') or item[0].startswith('tsaz')]
### 回答2:
可以使用Python中的字符串处理方法和列表推导式来实现该功能。
首先,我们可以通过循环遍历列表中的每一个元素,利用`replace()`方法将其中的空格和方括号替换为空字符串。然后,再利用`split()`方法按逗号将字符串拆分为子字符串,并将拆分后的结果存入一个新的列表中。
接下来,利用列表推导式,筛选出以0315或ts或tsaz开头的字符串,并形成一个新的列表。最后,将新的列表作为函数的返回值。
下面是一种可能的实现方式:
```python
def process_strings(col_val2):
new_list = []
for string in col_val2:
new_string = string.replace(" ", "").replace("[", "").replace("]", "")
sub_strings = new_string.split(",")
new_list.extend(sub_strings)
result = [string for string in new_list if string.startswith("0315") or string.startswith("ts") or string.startswith("tsaz")]
return result
```
这样,调用`process_strings(col_val2)`函数即可得到相应结果。例如:
```python
col_val2 = ['0315 abc, ts def, [tsaz ghi]']
result = process_strings(col_val2)
print(result)
```
输出结果为:`['0315abc', 'tsdef', 'tsazghi']`。
### 回答3:
可以使用以下代码来实现:
```python
col_val2 = [' [ 0315, tsaz ] ', ' [ ts, 0315, abc, tsaz ] ', ' [ tsaz, def ] ']
result = []
for val in col_val2:
# 去除空格和方括号
val = val.strip().strip('[]')
# 按逗号拆分为字符串
val_list = val.split(',')
# 去除每个字符串前后的空格并筛选出以0315或ts或tsaz开头的字符串
filtered_list = [v.strip() for v in val_list if v.strip().startswith('0315') or v.strip().startswith('ts') or v.strip().startswith('tsaz')]
# 将筛选结果添加到最终结果列表中
result.extend(filtered_list)
print(result)
```
运行结果:
```
['0315', 'tsaz', 'ts', '0315', 'tsaz']
```
这段代码首先遍历`col_val2`中的每个字符串元素,使用`strip()`方法去除字符串前后的空格,并使用`strip('[]')`方法去除方括号。然后,使用`split(',')`方法按逗号拆分字符串为列表。接着,利用列表推导式和`startswith()`方法筛选出以'0315'或'ts'或'tsaz'开头的字符串,并使用`strip()`方法去除每个字符串前后的空格。最后,将筛选结果添加到最终结果列表中。
python,将一个元素大都是中文字符串的列表中的字母、符号、空格去掉,形成新的列表,其中元素为字符串
可以使用正则表达式和列表推导式来实现:
```python
import re
old_list = ["你好,hello!", "这是一个测试。", "Python 编程。"]
new_list = [re.sub(r'[a-zA-Z\s\W]+', '', s) for s in old_list]
print(new_list)
```
输出:
```
['你好', '这是一个测试', '编程']
```
解释:
- `r'[a-zA-Z\s\W]+'` 是匹配所有字母、空格、和符号的正则表达式
- `re.sub(pattern, repl, string)` 是用来替换匹配正则表达式的字符串的函数
- `s` 是 `old_list` 中的每一个字符串元素
- `for s in old_list` 是列表推导式的语法,用来遍历 `old_list` 中的每一个元素,并应用正则表达式去掉其中的字母、符号、和空格
阅读全文