我有一个以数字为键的列表和以字符串为值的列表。例如
my_dict = {
1: ['bush', 'barck obama', 'general motors corporation'],
2: ['george bush', 'obama'],
3: ['general motors', 'george w. bush']
}
我想要的是比较每个列表中的每个项目(对于每个键),如果该项目是另一个项目的子字符串,则将其更改为更长的项目。所以,一种非常肮脏的共指消解。你知道吗
我不知道该怎么做。 下面是我想到的伪代码:
for key, value in dict:
for item in value:
if item is substring of other item in any other key, value:
item = other item
所以我的字典最终会变成这样:
my_dict = {
1: ['george w. bush', 'barck obama', 'general motors corporation'],
2: ['george w. bush', 'barck obama'],
3: ['general motors corporation', 'george w. bush']
}
对不起,如果我没有表达清楚问题是什么。你知道吗
在你的字典里创建一组所有的名字。
然后您可以创建一个允许您构造新dict的查找表。
这将使用
key=len
中的max()
来选择具有子字符串的最长名称:或者您也可以就地执行
max()
:要获得所需的输出,需要与子字符串稍有不同的匹配条件:
事实上,这是一本列表词典是无关紧要的。有些字符串必须根据其他字符串进行修改。你知道吗
以下是字符串:
替换字符串:
要替换所有内容:
相关问题 更多 >
编程相关推荐