我有
['2013 (63 reg)', '76,869 miles', '2.0L','Manual', 'Diesel</li>\n</ul>']
['2011 (61 reg)', 'Estate', '2.0L', '135BHP','Manual', 'Diesel', '4 owners</li>\n</ul>']
['2011 (11 reg)', 'Saloon', '112,000 miles', '2.1L', '201BHP','Manual', 'Diesel', '4 owners', 'Partservice history</li>\n</ul>']
['2007 (07 reg)', 'Saloon', '98,000 miles','3.0L', '222BHP', 'Automatic', 'Diesel']
在数据帧df中的列中,我有此代码来检查单词“ miles”是否存在(如果是),它返回包含英里的字符串,否则返回空并将其存储在列表中
miles=[]
sub = 'miles'
for f in df['Data'] :
for text in f:
if sub in text:
miles.append(text)
else:
miles.append('')`
它返回' '
所有文本值,而不是每个列表中我有类似东西的地方
['',
'76,869 miles',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'112,000 miles',
'',
'',
'',
'',
'',
'',
'',
'',
'98,000 miles',
'',
]
我想要的
['76,869 miles',
'',
'112,000 miles',
'98,000 miles']
好吧,您正在使用nested
循环检查element
每个列表中的每个对象。当前在代码中检查的地方是否miles
存在元素,如果没有则返回它,因此您只是''
在没有的情况下添加对应的元素miles
。
但是,这里的逻辑是搜索elements
每个列表,如果其中list
不包含所需列表,target
那么我们需要用来回复的代码Hey, I'm not there
。
因此,我们必须generator
与next
功能一起使用。
data = [['2013 (63 reg)', '76,869 miles', '2.0L',
'Manual', 'Diesel</li>\n</ul>'],
['2011 (61 reg)', 'Estate', '2.0L', '135BHP',
'Manual', 'Diesel', '4 owners</li>\n</ul>'],
['2011 (11 reg)', 'Saloon', '112,000 miles', '2.1L', '201BHP',
'Manual', 'Diesel', '4 owners', 'Partservice history</li>\n</ul>'],
['2007 (07 reg)', 'Saloon', '98,000 miles',
'3.0L', '222BHP', 'Automatic', 'Diesel']]
new = [next((t for t in item if "miles" in t), "Miles Not Found")
for item in data]
print(new)
输出:
['76,869 miles', 'Miles Not Found', '112,000 miles', '98,000 miles']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句