【发布时间】:2015-11-24 02:59:09
【问题描述】:
所以我有一个 SteamApp 对象列表:
>>> games
[<SteamApp "Counter-Strike: Global Offensive" (730)>, <SteamApp "XCOM: Enemy Unknown" (200510)>]
我也有这段代码:
ownscs = []
if '"Counter-Strike: Global Offensive"' in games:
print('Owns CS')
ownscs.append(foo)
我只想检查是否有人拥有 Counter-Strike 但问题的关键来了,列表游戏不可迭代且没有属性查找,以防我尝试这两个我得到:
if any('"Counter-strike: Global Offensive"' in s for s in games):
TypeError: argument of type 'SteamApp' is not iterable
和
if games.find('"Counter-strike: Global Offensive"') != -1:
AttributeError: 'SteamApp' object has no attribute 'find'
所以我的问题是:我如何查看 Counter-strike: Global Offensive 的列表游戏,因为它显然既不可迭代也不可找到。
如果您想知道 SteamApp 对象是什么,我使用 https://github.com/smiley/steamapi 创建 SteamApp 对象。
【问题讨论】:
-
你需要知道steamapp对象的属性。试试
dir(steamapp) -
Python
list是总是可迭代的,所以这不是你的问题。也就是说,您的games = [...]行实际上并没有创建一个列表。您是想告诉我们该列表已被初始化为包含两个SteamApp对象吗? -
@KevinJ.Chase 是的,这就是我的意思,甚至不是两个,而是更多!该列表包含每个游戏的 SteamApp 对象。 El'endia 对映射的回答成功了!
-
您在标题中说 没有迭代,但是迭代列表很好 - 问题是您还试图将
SteamApp对象视为可迭代的in s. -
@Galax 是的,我并没有完全理解我面前的东西。我想当它没有迭代器时我可以迭代对象。很抱歉。
标签: python python-3.x steam-web-api