如何在变量或列表中存储 for 循环打印值

How can i store for loop print value in variable or list

我实际上是 python 的新手,刚开始学习它 我正在使用一个基于 Pokeapi and its name is Pokebase 的模块,它基本上是 python 的包装器 api 所以我遇到了问题: 这是一个 for 循环,我在其中打印 api 收到的一些数据。 代码:

import pokebase as pb
p1=pb.pokemon('charmander')
for stat in p1.stats:
    print('{}: {}'.format(stat.stat.name, stat.base_stat))

实际上我不想打印这个值我想将这个值保存在变量或列表中我该怎么做?

应该这样做!

import pokebase as pb
p1=pb.pokemon('charmander')
names = []
base_stats = []
for stat in p1.stats:
    #print('{}: {}'.format(stat.stat.name, stat.base_stat))
    names.append(stat.stat.name)
    base_stats.append(stat.base_stat)

如果要将其保存在列表中:

[[stat.stat.name, stat.base_stat] for stat in p1.stats]

这叫做list comprehension

如果你想使用字典:

{stat.stat.name: stat.base_stat for stat in p1.stats}

这应该可以解决问题。

import pokebase as pb
p1 = pb.pokemon('charmander')

stats = []
for stat in p1.stats:
   stats.append( '{}: {}'.format(stat.stat.name, stat.base_stat) )

我猜是这样的:

stat_str = ""
for stat in p1.stats:
    stat_str += f"{stat.stat.name}: {stat.base_stat}\n"

我是一个 Python 菜鸟,毫无疑问有更好的解决方案,但这个可行:

import pokebase as pb

p1 = pb.pokemon('charmander')

p1Dictionary = {}

for stat in p1.stats:
    p1Dictionary.update({stat.stat.name : stat.base_stat}) 
print(p1Dictionary)
for key, value in p1Dictionary.items():
    print(key, value)