我有一个元组列表,并且如果元组中的第一个元素中没有数字,我想删除一个元组。下面是我目前拥有的代码。
x = [('akj_vx', 1.2559392760527808, 1.0), ('39Sbw£', 1.5930205922, 2.0), ('bg1HEw*', 1.95830294, 1.0)]
for item in x:
print("Time", item[1],": ID", item[0], "Exponent", item[2],)
if re.search(r"\d", item[0]):
print("Task", item[0] ,"Accepted \n")
else:
print("Task", item[0], "discarded \n")
print(x)
当我打印列表(x)时,我希望输出为:
[('39Sbw£', 1.5930205922, 2.0), ('bg1HEw*', 1.95830294, 1.0)]
我可以在代码中添加些什么来确保这一点?
答案 0 :(得分:1)
您可以使用列表推导来创建满足条件的列表,而不是删除不必要的项目:
if (groceries.get(i) instanceof Food) {
Food.saveToFile((Food)groceries.get(i));
}
else
Beverage.saveToFile((Beverage)groceries.get(i));
或者,您也可以使用纯Python(没有任何模块依赖性):
x = [item for item in x if re.search(r"\d", item[0])]
根据评论中的要求,您还可以按索引删除(不推荐):
x = [item for item in x if any(y.isdigit() for y in item[0])]
答案 1 :(得分:0)
您可以使用一些列表理解:custom_source= new rtc::RefCountedObject<CustomVideoSource>();
// create video track from our custom source
rtc::scoped_refptr<webrtc::VideoTrackInterface> custom_video_track(
g_peer_connection_factory->CreateVideoTrack( kVideoLabel, custom_source));
//add to stream
stream->AddTrack(custom_video_track);
答案 2 :(得分:0)
如果您不想使用re
模块,可以使用此模块:
x = [('akj_vx', 1.2559392760527808, 1.0), ('39Sbw£', 1.5930205922, 2.0), ('bg1HEw*', 1.95830294, 1.0)]
x = [i for i in x if any(ch in '0123456789' for ch in i[0])]
print(x)
打印:
[('39Sbw£', 1.5930205922, 2.0), ('bg1HEw*', 1.95830294, 1.0)]
编辑(或使用.isdigit()
):
x = [i for i in x if any(ch.isdigit() for ch in i[0])]