【发布时间】:2021-02-13 22:08:17
【问题描述】:
我有两个列表,我想找到具有相同/部分字符的项目并将结果放入字典中:
list_a= ['helloyou', 'waithere', 'byenow']
list_b =[ 'wait', 'hello', 'bye']
想要的结果:
dict_c= {'helloyou:hello', 'waithere:wait', 'byenow:bye'}
我试过了,但似乎不起作用:
dict_c= {j:i for i,j in zip(list_a,list_b) if re.match(j,i)}
编辑:
我可能有一些开头不一样的项目,例如:
list_a= ['helloyou', 'waithere', 'byenow']
list_b =[ 'yeswait', 'plushello', 'nobye']
想要的结果:
dict_c= {'helloyou:plushello', 'waithere:yeswait', 'byenow:nobye'}
编辑
如果我可以有这样的情况,我可以使用分隔符来拆分项目并使用开头
list_a = ['hid/jui/helloyou', 'hhh/hdhdh/waithere', 'jcdjcjd/bdcdbc/byenow']
list_b = ['abc/efg/waitai_lp', 'hil/mno/helloai_lj', 'pqr/byeai_ki']
想要的结果
dict_c = {'hid/jui/helloyou:hil/mno/helloai_lj','hhh/hdhdh/waithere:abc/efg/waitai_lp', 'jcdjcjd/bdcdbc/byenow:pqr/byeai_ki'}
【问题讨论】:
-
较长的字符串是否总是在
list_a中,或者它可以在任何一个中? -
也可以!
-
最新更新的问题没有意义。您如何知道 2 个字符串之间的重叠何时足以匹配?
'helloyou:plushello'匹配,因为hello很常见,但abcd:blkm也是如此,因为它们有b共同。 -
这完全改变了您的主要问题。并使问题成为一个完全不同的问题。这是一个很好的问题,直到该编辑完全改变了整个问题:)
-
@AkshaySehgal 感谢您的回复,是的,这就是我努力寻找解决方案的原因。如果我可以有这样的情况,我可以使用分隔符来拆分项目并使用 list_a = ['hid/jui/helloyou', 'hhh/hdhdh/waithere', 'jcdjcjd/bdcdbc/byenow '] list_b = ['abc/efg/waitai_lp', 'hil/mno/helloai_lj', 'pqr/byeai_ki'] 想要的结果 dict_c = {'hid/jui/helloyou:hil/mno/helloai_lj', 'hhh/hdhdh /waithere:abc/efg/waitai_lp', 'jcdjcjd/bdcdbc/byenow:pqr/byeai_ki'}
标签: python list dictionary list-comprehension python-re