我的清单是这样的:
lst = [['^160magenta'], ['S159magenta', '//159magenta'], ['R158black', 'S158black', 'T158black'], ['S157black', 'T157yellow'], ['//156yellow']]我希望它看起来像这样:
lst = [['magenta'], ['magenta', 'magenta'], ['black', 'black', 'black'], ['black', 'yellow'], ['yellow']]它们是动态的,可以是不同的坐标和颜色。我有从选择器开始列出的所有颜色,所以我可以在每个列表中搜索这样的颜色,但idk如果有更简单的方法。
发布于 2020-10-26 12:07:45
import re
lst = [['^160magenta'], ['S159magenta', '//159magenta'], ['R158black', 'S158black', 'T158black'], ['S157black', 'T157yellow'], ['//156yellow']]
for i in lst:
for j in i:
print(re.findall(r'\d+(.*)', j))这会导致
['magenta']
['magenta']
['magenta']
['black']
['black']
['black']
['black']
['yellow']
['yellow']发布于 2020-10-26 12:50:34
import re
pattern = "[a-z]+"
data = [
["^160magenta"],
["S159magenta", "//159magenta"],
["R158black", "S158black", "T158black"],
["S157black", "T157yellow"],
["//156yellow"],
]
sorted_data = list()
for row in data:
new_row = list()
for word in row:
match = re.findall(pattern, word)
new_row.extend(match)
sorted_data.append(new_row)
print(sorted_data)发布于 2020-10-26 12:13:46
尝尝这个
lst = [['^160magenta'], ['S159magenta', '//159magenta'], ['R158black', 'S158black', 'T158black'], ['S157black', 'T157yellow'], ['//156yellow']]
import re
lst=[[re.search('([a-z]{2,})',i).group(0) for i in j] for j in lst]
print(lst)解释:
它搜索2个或更多的字母表,并将它们放入列表中,它还使用列表理解遍历原始列表两次,非列表理解版本将是:
lst = [['^160magenta'], ['S159magenta', '//159magenta'], ['R158black', 'S158black', 'T158black'], ['S157black', 'T157yellow'], ['//156yellow']]
temp=[]
for j in lst:
for i in j:
temp.append(re.search('([a-z]{2,})',i).group(0))
print(temp)https://stackoverflow.com/questions/64531356
复制相似问题