如何找到一个列中映射(直接或间接)到另一列中值的值?

2024-06-25 23:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集如下:

<t>Pokemon    Evolves to<\t> 
<t>Pichu      Pickachu<\t> 
<t>Pickachu   Raichu<\t> 
<t>Bulbasaur  Venusaur<\t> 

我想要一个列表的输出,给我一个内部的口袋妖怪和它进化到的所有口袋妖怪列表。输出应该是这样的: [[比丘、皮卡丘、莱丘]、[布尔巴苏尔、韦努苏尔]]

我该怎么办?我需要创建树型结构吗?还是有别的办法

这是针对Python3的。我尝试过寻找类似的问题,但没有找到任何结论


Tags: to数据列表结构python3树型pokemon办法
1条回答
网友
1楼 · 发布于 2024-06-25 23:44:31

你可以从制作一个包含Pokemon可能的转换的字典开始。因此,作为一个键,我们在数据集的左侧有Pokemon,作为它的值,我们有Pokemon,它可以演变成一个元组:

evolves = {"Pichu": ("Pickachu",), "Pickachu": ("Raichu",), "Bulbasaur": ("Venusaur",)}

让X(A)成为pokemona可以进化成的Pokemons

现在,您可以:

  1. 虽然有变化
    1. 对于每一个口袋妖怪
      1. 考虑X(A)中的每个口袋妖怪B
      2. 取集合X(B),由口袋妖怪B可以进化成
      3. 如果集合X(A)+X(B)!=X(A),将X(B)添加到X(A)并移除X(B)

相关问题 更多 >