无法识别列表理解中的嵌套 for 循环 python
Nested for loop in list comprehension not recognised python
我有一个列表列表,我试图遍历其中的每个元素。该列表如下所示:
lsts = [['2020', '2019', '2018'], ['iPhone (1)', '$', '137781', '$', '142381', '$', '164888'], ['Mac (1)', '28622']]
我尝试使用 re
从每个元素中仅删除单个数字是这样的:
new_lst = [re.sub('[0-9]{1}', '', ele) for ele in lst for lst in lsts]
但是我收到以下错误:
NameError: name 'lst' is not defined
我的印象是这应该有效还是不可能?
谢谢
尝试切换 for 循环的顺序:
>>> new_lst = [re.sub('[0-9]{1}', '', ele) for lst in lsts for ele in lst if len(i)]
>>> new_lst
['', '', '', 'iPhone ()', '$', '', '$', '', '$', '', 'Mac ()', '']
>>>
要没有空字符串,请尝试:
>>> new_lst = [re.sub('[0-9]{1}', '', ele) for lst in lsts for ele in lst if (len(ele) > 1) & (not ele.isdigit())]
>>> new_lst
['iPhone ()', 'Mac ()']
>>>
我有一个列表列表,我试图遍历其中的每个元素。该列表如下所示:
lsts = [['2020', '2019', '2018'], ['iPhone (1)', '$', '137781', '$', '142381', '$', '164888'], ['Mac (1)', '28622']]
我尝试使用 re
从每个元素中仅删除单个数字是这样的:
new_lst = [re.sub('[0-9]{1}', '', ele) for ele in lst for lst in lsts]
但是我收到以下错误:
NameError: name 'lst' is not defined
我的印象是这应该有效还是不可能?
谢谢
尝试切换 for 循环的顺序:
>>> new_lst = [re.sub('[0-9]{1}', '', ele) for lst in lsts for ele in lst if len(i)]
>>> new_lst
['', '', '', 'iPhone ()', '$', '', '$', '', '$', '', 'Mac ()', '']
>>>
要没有空字符串,请尝试:
>>> new_lst = [re.sub('[0-9]{1}', '', ele) for lst in lsts for ele in lst if (len(ele) > 1) & (not ele.isdigit())]
>>> new_lst
['iPhone ()', 'Mac ()']
>>>