首页 > 解决方案 > 从 Python 中的列表中提取元素以创建嵌套列表

问题描述

我有一个这样的列表(这是从一些使用 bs4 的 html 文本中提取的):

test = ['Raji GlovesSixSixOneRegular price\n$29.99\nSale price$9.95\n\n                Save 67%\n              \nBUY 2 GET 1 FREE',
 'Comp Vortex GlovesSixSixOneRegular price\n$29.99\nSale price$9.95\n\n                Save 67%\n              \nBUY 2 GET 1 FREE',
 "Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n$70.00\nSale price$14.95\n\n                Save 79%",]

len(test) # 3

我想遍历列表中的每一行(3 个列表),并为每行提取第 0、2 和第 4 个索引项。使输出看起来像这样:

这个嵌套列表包含我想要查看的所有项目。

out = [['Raji GlovesSixSixOneRegular price',
 'Sale price$9.95',
 '                Save 67%'],['Comp Vortex GlovesSixSixOneRegular price',
     'Sale price$9.95',
     '                Save 67%'],["Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price",
 'Sale price$14.95',
 '                Save 79%']]

我知道我可以像这样从第一行中提取项目:

item1 = test[0]
item1 = item1.split(sep = '\n')
item1
indices = [0,2,4]
values =[]
for i in indices:
    print(item1[i])
    values.append(item1[i])
    
values 


['Raji GlovesSixSixOneRegular price',
 'Sale price$9.95',
 '                Save 67%']

我是 python 新手,我努力从每一行中提取这些项目,并将它们附加到嵌套列表中(见上文)。

关于如何实现这一目标的任何想法?

标签: pythonnested-lists

解决方案


简单的列表理解

test = ['Raji GlovesSixSixOneRegular price\n$29.99\nSale price$9.95\n\n                Save 67%\n              \nBUY 2 GET 1 FREE',
 'Comp Vortex GlovesSixSixOneRegular price\n$29.99\nSale price$9.95\n\n                Save 67%\n              \nBUY 2 GET 1 FREE',
 "Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n$70.00\nSale price$14.95\n\n                Save 79%",]

values = [i.split(sep = '\n')[0:5:2] for i in test]

推荐阅读