【发布时间】:2021-02-08 12:58:00
【问题描述】:
我在 python 中有两个列表:
A = ["Opn", "Jan-20 A", "Feb-20 A", "Mar-20 A"]
B = ["Jan-20 B", "Mar-20 B", "Apr-20 B", "Cls"]
我想将具有相似月份-年份的字符串组合在一起,并获得如下输出。不匹配的字符串将与空字符串分组
[("Opn",""),("Jan-20 A","Jan-20 B"),("Feb-20 A",""),("Mar-20 A","Mar-20 B"),("","Apr-20 B"),("","Cls")]
我的方法是这样的。是 O(n^2),想知道是否有更有效的方法。
output = []
pair = False
for i in A:
for j in B:
if i.split()[0] == j.split()[0]:
output.append((i,j))
pair = True
B.remove(j)
break
if not(pair):
output.append((i,''))
pair = False
output = output + [("",j) for j in B]
这样做的有效方法是什么?
【问题讨论】:
-
请分享您的尝试以及您遇到的问题。
-
字符串是随机的吗?
Opn和Cls- 这些是什么? -
是的,可以有随机字符串。只需要对匹配的字符串进行分组。给我2分钟,我会发布我的方法。它的 O(n^2),想知道是否有更有效的方法?
标签: python python-3.x string algorithm