从 Python 中的列表中提取元素以创建嵌套列表
Extract elements from list in Python to create nested list
我有一个这样的列表(这是使用 bs4 从一些 html 文本中提取的):
test = ['Raji GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
'Comp Vortex GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
"Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n.00\nSale price.95\n\n Save 79%",]
len(test) # 3
我想遍历列表(3 个列表)中的每一行,并为每一行提取第 0、2 和第 4 个索引项。这样输出看起来像这样:
此嵌套列表包含我想查看的所有项目。
out = [['Raji GlovesSixSixOneRegular price',
'Sale price.95',
' Save 67%'],['Comp Vortex GlovesSixSixOneRegular price',
'Sale price.95',
' Save 67%'],["Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price",
'Sale price.95',
' Save 79%']]
我知道我可以像这样从 first 行中提取项目:
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.95',
' Save 67%']
我是 python 的新手,我努力从每一行中提取这些项目,并将它们追加到嵌套列表中(见上文)。
关于如何实现这一点有什么想法吗?
怎么样:
out = []
indices = [0, 2, 4]
for elem in test:
aux = []
elem_split = elem.split('\n')
for index in indices:
item = elem_split[index]
aux.append(item)
out.append(aux)
简单的列表理解
test = ['Raji GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
'Comp Vortex GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
"Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n.00\nSale price.95\n\n Save 79%",]
values = [i.split(sep = '\n')[0:5:2] for i in test]
您可以按照下面的方式进行
values = []
for item1 in test:
item1 = item1.split(sep = '\n')
indices = [0,2,4]
value = []
for i in indices:
value.append(item1[i])
values.append(value)
print(values)
我有一个这样的列表(这是使用 bs4 从一些 html 文本中提取的):
test = ['Raji GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
'Comp Vortex GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
"Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n.00\nSale price.95\n\n Save 79%",]
len(test) # 3
我想遍历列表(3 个列表)中的每一行,并为每一行提取第 0、2 和第 4 个索引项。这样输出看起来像这样:
此嵌套列表包含我想查看的所有项目。
out = [['Raji GlovesSixSixOneRegular price',
'Sale price.95',
' Save 67%'],['Comp Vortex GlovesSixSixOneRegular price',
'Sale price.95',
' Save 67%'],["Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price",
'Sale price.95',
' Save 79%']]
我知道我可以像这样从 first 行中提取项目:
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.95',
' Save 67%']
我是 python 的新手,我努力从每一行中提取这些项目,并将它们追加到嵌套列表中(见上文)。
关于如何实现这一点有什么想法吗?
怎么样:
out = []
indices = [0, 2, 4]
for elem in test:
aux = []
elem_split = elem.split('\n')
for index in indices:
item = elem_split[index]
aux.append(item)
out.append(aux)
简单的列表理解
test = ['Raji GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
'Comp Vortex GlovesSixSixOneRegular price\n.99\nSale price.95\n\n Save 67%\n \nBUY 2 GET 1 FREE',
"Shasta 3/4 Cycling Tights - Women'sSpecializedRegular price\n.00\nSale price.95\n\n Save 79%",]
values = [i.split(sep = '\n')[0:5:2] for i in test]
您可以按照下面的方式进行
values = []
for item1 in test:
item1 = item1.split(sep = '\n')
indices = [0,2,4]
value = []
for i in indices:
value.append(item1[i])
values.append(value)
print(values)