【问题标题】:Simple check for value in list not giving expected result简单检查列表中的值未给出预期结果
【发布时间】:2022-12-13 07:01:11
【问题描述】:

我在 Pythonanywhere 上托管了一个脚本,我有一个公司列表,我正在检查这个列表中是否有一家公司。公司列表由两个列表组成,第一个是所有者公司,第二个是经销商。

([<Company 10>, <Company 11>, <Company 12>, <Company 13>, <Company 16>, <Company 14>, <Company 17>, <Company 18>, <Company 19>, <Company 20>, <Company 22>], [<Company 15>, <Company 5>, <Company 6>])

下面是我正在执行的一个简单检查,以查看某个值是否在第一个公司列表中。

if owner in company_lists[0]:
    print('Owner in list')
else:
    print('Owner not in list')

我正在为每张支票打印所有者公司的价值,下面是一个示例输出

Owner is <Company 10>
Owner not in list

我错过了什么吗?据我所知,两个值都出现在列表中,但我没有得到预期的输出?

【问题讨论】:

  • if owner in company_list:
  • 对不起,我应该更好地解释我已经编辑了我的帖子。公司列表是两个列表,我想检查公司是否在第一个列表中。
  • 你能试试这个吗,if owner.id in [i.id for i in company_lists[0]]:?这里的 Company 对象是什么?
  • 请添加minimal reproducible examplecompanies = [['A', 'B', 'C'], ['D', 'E', 'F']]; 'A' in companies[0] 可以正常工作,因此您未显示的代码中存在错误。

标签: python pythonanywhere


【解决方案1】:

您的“如果”仅检查列表的第一个元素,因此它只会找到第一家公司。

转动

if owner in company_lists[0]:

进入

if owner in company_lists:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    相关资源
    最近更新 更多