【发布时间】:2017-10-25 01:45:37
【问题描述】:
我有一个表(列表列表)。示例输出如下:
table = ['dd03', 'ff0000', 'a30b32', '000000', '234fas', '00ffff', 'ffffff', '0000ff', '0200ff']
我想删除列表中包含“ff”任意组合的所有元素,或者该元素中至少有 2/6 个字符的元素。
我已经完成了一个列表理解,它可以完成这项工作,但它显然不是很有效,并且肯定可以用更少的代码来完成。
table = [[part for part in my_list if part != 'ffffff'] for my_list in table]
table = [[part for part in my_list if part != 'ffff00'] for my_list in table]
table = [[part for part in my_list if part != 'ff0000'] for my_list in table]
table = [[part for part in my_list if part != '0000ff'] for my_list in table]
table = [[part for part in my_list if part != '00ffff'] for my_list in table]
table = [[part for part in my_list if part != 'ffff'] for my_list in table]
table = [[part for part in my_list if part != 'ff'] for my_list in table]
table = [[part for part in my_list if part != 'ffff02'] for my_list in table]
table = [[part for part in my_list if part != '0200ff'] for my_list in table]
我想也许可以为模式设置一个正则表达式变量以查找然后删除匹配的元素......但我不太熟悉这个包并在这种情况下实现它。
任何方向都将不胜感激。
干杯
【问题讨论】:
-
将
if条件改为:if 'ff' not in part -
您能否更清楚地解释 2/6 条件?为什么不能只计算
f在每个字符串中出现的次数? -
'f34fas'会算作拥有 2/6ths'f's 吗? -
到目前为止,所有的答案都是错误的。在OP明确问题之前,没有人应该回答。当问题得到正确指定和回答时,猜测 OP 意图的答案只会产生噪音。
标签: python regex python-2.7