从嵌套列表构建链

时间:2018-05-15 03:58:17

标签: python python-3.x algorithm list

我有一个嵌套列表:

[['мама', 'мыть', '10', 'рама'],
 ['мыть', 'рама', '5', 'долго'],
 ['мама', 'мыть', '10', 'рама'],
 ['мыть', 'рама', '3', 'вчера'],
 ['мыть', 'рама', '10', 'вчера'],
 ['рама', 'вчера', '1', 'поздно']]

我需要的是构建链,其中一个列表的最后两个非数字字符串元素等于另一个列表的前两个非数字字符串元素,例如:

['Мама', 'мыть', '10', 'рама']

['мыть', 'рама', '5', 'долго']

'мыть', 'рама'是匹配项,因此最终输出应为:

[['мама', 'мыть', '10', 'рама', '5', 'долго'],
 ['мама', 'мыть', '10', 'рама', '3', 'вчера'],
 ['мама', 'мыть'  '10', 'рама', '3', 'вчера', '1', 'поздно']]

数字是一种概率,应保持原样。我认为应该有某种迭代搜索,但我不确定。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

1 - 从列表中创建一个字典,其中键是前两个单词的组合。类似的东西:

key: 'Мама_мыть' value: ['Мама', 'мыть', '10', 'рама'],
key: 'мыть_рама' value: ['мыть', 'рама', '5', 'долго'],
   ... etc ...

2 - 迭代列表,从每个条目中的最后两个非数字值创建一个键。并在字典中查看该值。

3 - 找到匹配项后,创建输出。