python - 如何从具有过滤项目的列表创建子列表?

标签 python python-3.x

我有一个像下面这样的有效载荷 -

1,a1,21,31,b1
2,a2,22,32,b2
3,,23,33,b3
4,a4,,,b4

并尝试从此字符串中获取每第二列并将其放入列表中。

预期输出:

[a1,a2,a4]

我试过下面的代码但没有得到想要的输出 -

ListPayload = []
for line in ((payload.text).splitlines()):
    ListPayload.append(line)

通过这样做,我得到如下输出 -

['1,a1,21,31,b1','2,a2,22,32,b2','3,,23,33,b3','4,a4,,,b4']

并使用下面的代码获取第二列-

filteredList =[]
for i in range(len(ListPayload)):
    filteredList.append(ListPayload[i].split(",")[1])

然后我用下面的方法得到了想要的输出

result = [x for x in filteredList if x]
print(result)

是否有比这更好的方法来获得所需的输出?

最佳答案

试试这个:

payload = '''1,a1,21,31,b1
2,a2,22,32,b2
3,,23,33,b3
4,a4,,,b4'''
col = 1  # you can extract any column
[line.split(',')[col] for line in ((payload).splitlines()) if line.split(',')[col]]  

Output:
## ['a1', 'a2', 'a4']

关于python - 如何从具有过滤项目的列表创建子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56600744/

相关文章:

python-3.x - 错误 : OOM when allocating tensor with shape

python - 如何使用 python 3.x 执行多项式加法和乘法?

python - 为什么 math.log 接受大整数值?

python - 每个条目包含多个元素的列表理解

python - 如何使用 webapp2 添加 auth_id?

python - 如何使用阿里巴巴ODPS python SDK中的Schema.from_lists方法创建schema?

python - 标识符规范化 : Why is the micro sign converted into the Greek letter mu?

Python:MySQL:处理超时

python - on_message函数重复,Discord.py重写

python - 将 pandas 数据帧传递给 fastapi