【发布时间】:2021-05-09 12:11:53
【问题描述】:
我有两个名为“查询”和“数据”的列表,它们都包含字符串。我需要计算'data'中有'query'中每个字符串的字谜。
例如以下两个列表:
query = ['no', 'result', 'oh', 'abc', 'temper']
data = ['no', 'on', 'bca', 'oh', 'cba', 'repmet', 'serult', 'pemter', 'tluser', 'tlures', 'pterem', 'temprep']
输出将是一个字典,其中包含每个单词的字谜计数:
{'no': 2, 'result': 3, 'oh': 1, 'abc': 2, 'temper': 4}
我有一个使用嵌套循环的初始蛮力解决方案,但我想知道我应该如何优化它,因为当列表变大时它会很慢。
dict1 = {}
data.sort()
data.sort(key=len, reverse=False)
for idx in range(len(query)):
dict1[query[idx]] = 0
x = sorted(query[idx])
for idx2 in range(len(data)):
if len(data[idx2]) > len(query[idx]):
break
if data[idx2] == query[idx]:
dict1[query[idx]] += 1
elif x == sorted(data[idx2]):
dict1[query[idx]] += 1
【问题讨论】:
标签: python arrays string optimization