Поэтому у меня есть список объектов 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 , но вот суть игры, список игр не является итерируемым и не имеет атрибута find, в случае, если я попробую эти два, я получаю:
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, когда это явно ни итерацию, ни обнаружимого.
Я использую https://github.com/smiley/steamapi, который создает объекты SteamApp, если вам интересно, что это такое.
Вам необходимо знать атрибуты объекта steamapp. Попробуйте 'dir (steamapp)' – user193661
Python 'list' _always_ iterable, так что это не ваша проблема. Тем не менее, ваша строка 'games = [...]' фактически не создает список. Вы пытались сказать нам, что список уже был инициализирован, чтобы содержать два объекта SteamApp? –
@ KevinJ.Chase да, это было то, что я хотел сказать, даже не два, а больше! список содержит объект SteamApp для каждой игры. Ответ El'endia с картографированием сделал трюк! – Lyux