我有一個字串串列,我將其拆分為 ('/>') 上的串列串列,但我想進一步拆分該串列的元素,具體取決于它是否具有某個字符 ('/')它同時保持“其他元素”被拆分的順序。例如
lol=['FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Mangoes/Grapes/Guava',
'FruitSalad://Fruits/Seasonal/Winter/>Nov>Dec>Jan>Banana/Oranges',
'FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Pineapple']
l1=[lol[_].split('/>')[-1].split('>') for _ in range(len(lol)) if '/>' in lol[_]]
>>> l1
[['June', 'July', 'August', 'Mangoes/Grapes/Guava'], ['Nov', 'Dec', 'Jan', 'Banana/Oranges'], ['June', 'July', 'August', 'Pineapple']]
而不是上述,我試圖得到
[['June', 'July', 'August', 'Mangoes', 'Grapes', 'Guava'], ['Nov', 'Dec', 'Jan', 'Banana', 'Oranges'], ['June', 'July', 'August', 'Pineapple']]
任何幫助是極大的贊賞!如果我的問題沒有意義,請告訴我。不確定這是否重要,但這應該適用于 python 2.7 和 3.6。謝謝!
uj5u.com熱心網友回復:
- 對于每個元素,拆分
/> - 取最后一個元素并將斜杠替換為
>,然后再次拆分
[l.split("/>",1)[-1].replace("/", ">").split(">") for l in lol]
uj5u.com熱心網友回復:
您可以執行以下操作。
lol=['FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Mangoes/Grapes/Guava',
'FruitSalad://Fruits/Seasonal/Winter/>Nov>Dec>Jan>Banana/Oranges',
'FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Pineapple']
l1=[lol[_].split('/>')[-1].split('>') for _ in range(len(lol)) if '/>' in lol[_]]
final_l1 = []
for elem in l1:
final_l1.append([])
for each in elem:
final_l1[-1] = each.split('/')
print(print(final_l1))
輸出
[['June', 'July', 'August', 'Mangoes', 'Grapes', 'Guava'], ['Nov', 'Dec', 'Jan', 'Banana', 'Oranges'], ['June', 'July', 'August', 'Pineapple']]
uj5u.com熱心網友回復:
@Kaz Salvatore,試試這個:
lol= ['FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Mangoes/Grapes/Guava',
'FruitSalad://Fruits/Seasonal/Winter/>Nov>Dec>Jan>Banana/Oranges',
'FruitSalad://Fruits/Seasonal/Summer/>June>July>August>Pineapple']
[x.replace('://', ' ')
.replace('/', ' ')
.replace('/>', ' ')
.replace('>', ' ')
.replace(' ', ' ')
.split() for x in lol]
輸出:
[['FruitSalad',
'Fruits',
'Seasonal',
'Summer',
'June',
'July',
'August',
'Mangoes',
'Grapes',
'Guava'],
['FruitSalad',
'Fruits',
'Seasonal',
'Winter',
'Nov',
'Dec',
'Jan',
'Banana',
'Oranges'],
['FruitSalad',
'Fruits',
'Seasonal',
'Summer',
'June',
'July',
'August',
'Pineapple']]
uj5u.com熱心網友回復:
你也可以使用Regular expression:
import re
[re.split(r'/|>',l.split('/>')[-1]) for l in lol if '/>' in l]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/397248.html
