現在,有一個包含 2 個字串的串列:
l1 = [['a', 'www.apple.com/a www.google.com www.yahoo.com'],
['b', 'www.apple.com/sm www.sashgh.com www.uensg.com'],
['c', 'www.apple.com/oths www.zhiut.com'],
['d', 'www.amazon.com www.toronto.com']]
我想保留第一個字串,并在第二個字串中獲取 'apple.com' url,或者如果沒有 'apple.com' 則給出 None (如 'd' 中的情況):
l2 = [['a', 'www.apple.com/a'],
['b', 'www.apple.com/sm'],
['c', 'www.apple.com/oths'],
['d', None]]
我試過這個:
l2 = []
for l in l1:
for url in l[1].split(' '):
if 'apple.com' in url:
l2.append([l[0], url])
break
else:
l2.append([l[0], None])
break
并且代碼現在可以作業了!
uj5u.com熱心網友回復:
由于您只apple.com在子串列的第二個元素的拆分字串中附加第一個,因此您可以使用next和生成器運算式來提取第一個apple.coms。
out = [[first, next((s for s in second.split() if 'apple.com' in s), None)] for first, second in l1]
輸出:
[['a', 'www.apple.com/a'],
['b', 'www.apple.com/sm'],
['c', 'www.apple.com/oths'],
['d', None]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/451048.html
