gpt4 book ai didi

python - 尝试使用 Python 代码确定生物体的 "height"

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:19 26 4
gpt4 key购买 nike

我正在尝试获取一个包含列表的文本文件,其中获取输入值并在“高度”中对它们进行排名,这意味着任何只吃生产者的动物的高度都是 1。

我想我对如何解决这个问题的理解很低:

  1. 将包括生产者在内的所有生物的高度设置为0
  2. 标记有变化
  3. 虽然有些事情发生了变化......
    1. 标记没有任何变化
    2. 对于食物网中的每只动物,a
      1. 对于每只动物,pa 捕食
        1. 如果a的高度小于或等于p的高度,将a的高度设置为高度并标记某些东西发生了变化

非常感谢任何帮助。我希望我的信息没有太罗嗦或混淆

foodweb = {}

with open('AquaticFoodWeb.txt') as input:
for line in input:
animal, prey = line.strip().split(' eats ')
foodweb.setdefault(animal, []).append(prey)

print ("Predators and Prey:")

for animal, prey in sorted(foodweb.items()):
if len(prey) > 1:
print ("{} eats {} and {}".format(animal, ", ".join(prey[:-1]), prey[-1]))
else:
print ("{} eats {}".format(animal, ", ".join(prey)))

#Apex

values = [item.strip() for sub in foodweb.values() for item in sub]
for apex in foodweb.keys():
if apex.strip() not in values:
print("Apex Predators: ", apex)

这是文本文件输入:

Bird eats Prawn
Bird eats Mussels
Bird eats Crab
Bird eats Limpets
Bird eats Whelk
Crab eats Mussels
Crab eats Limpets
Fish eats Prawn
Limpets eats Seaweed
Lobster eats Crab
Lobster eats Mussels
Lobster eats Limpets
Lobster eats Whelk
Mussels eats Phytoplankton
Mussels eats Zooplankton
Prawn eats Zooplankton
Whelk eats Limpets
Whelk eats Mussels
Zooplankton eats Phytoplankton

想要的输出:

 Heights:
Bird: 4
Crab: 3
Fish: 3
Limpets: 1
Lobster: 4
Mussels: 2
Phytoplankton: 0
Prawn: 2
Seaweed: 0
Whelk: 3
Zooplankton: 1

最佳答案

这不是一个糟糕的开始。我对它需要什么的分析:

对于每个有机体,高度比最大高度多一它吃的生物。海藻和浮游植物为 0,因为它们不吃任何东西。浮游动物和帽贝是 1,因为它们只吃0级生物。

因此,从生物体到它们所吃食物列表的映射开始。你有那个,除了你需要添加一行也将捕获不吃任何东西的最低级生物:

with open('AquaticFoodWeb.txt') as input:
for line in input:
animal, prey = line.strip().split(' eats ')
foodweb.setdefault(animal, []).append(prey)
foodweb.setdefault(prey, []) # new line of code

其余的,只是一个大纲,因为这听起来像是家庭作业,而且我不会剥夺你的教育。

下一步是将 foodweb 转换为另一个映射,来自 organisms到高处。在这里,我将按值的长度排序,将 level-0生物体在上面,然后进行一次或多次通过。对于每个键,如果所有猎物生物的高度都是已知的,为键分配最大值高度加一,然后从 foodweb 中删除此键。

0级生物因为没有猎物,所以马上加入。然后我们捕获吃它们的东西。可能需要不止一个通过,但最终 foodweb 将为空,输出将为满了。

关于python - 尝试使用 Python 代码确定生物体的 "height",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com