Python中从列表移除多元素及字符串处理的更简洁实现方法
需求1:输出 ['WXY', 'MNO']
用列表推导式一行即可实现,不需要手动删除指定关键词:
my_list = ['from ab1c_table in WXY\nprevious in time', 'from abc3_table in MNO\nprevious in time', 'from ab1_cow_table in DZMC1_IN tab\ncurrent in time', 'from abc4_table in ERDU\ncurrent in time'] res = [item.split()[3].split('\n')[0] for item in my_list if 'previous' in item] print(res)
实现逻辑:过滤仅保留带previous的行,每行按空格分割后取索引3的内容,再用\n分割取第一部分即可剔除多余后缀。
需求2:输出 ['ab1c_table', 'WXY', 'abc3_table', 'MNO', 'ab1_cow_table', 'DZMC1_IN', 'abc4_table', 'ERDU']
同样用双层列表推导式实现:
res = [j for i in my_list for j in (i.split()[1], i.split()[3].split('\n')[0])] print(res)
实现逻辑:遍历每一行分别取表名(空格分割后索引1的内容)和对应标识(空格分割后索引3的内容剔除换行后缀),再把所有结果展开到同一个列表中。
内容的提问来源于stack exchange,提问作者user16457847
相关产品推荐
相关产品推荐

