【问题标题】:Finding a variable in a python list在 python 列表中查找变量
【发布时间】:2015-03-02 20:42:08
【问题描述】:

我试图在一个函数返回的列表中搜索一个变量

        hid = '282'
if __name__ == '__main__':


    filename = "foo.txt"

    z = get_history_ids2(sid)
    with open(filename) as f:
        data = f.readlines()

    for r in z: 
        if int('4216') in data is False:
            print 'lose'
        else:
            print 'win'
    print data


    print (hid)
    print z

我是假的......或者换句话说,它没有看到数字“282”,尽管它确实存在于列表中

[281, 282, 283, 284, 285, 286, 294, 303, 304, 305, 306, 307, 308, 309, 310, 312, 313, 314, 318, 319, 320, 321, 322, 323、414、415、416、417、418]

我做错了什么?

【问题讨论】:

  • 我无法运行你的代码,所以大胆猜测:尝试用hid = 282替换你的第一行
  • '282' 是一个字符串,不等于数字282。也许这就是正在发生的事情。

标签: python


【解决方案1】:

您的程序正确地报告字符串“282”不在列表中。您可以在同一个列表中找到 int 282:

In [1]: x = [281, 282, 283, 284, 285, 286, 294, 303, 304, 305, 306, 307, 308, 309, 310, 312, 313, 314, 318, 319, 320, 321, 322, 323, 414, 415, 416, 417, 418]

In [2]: '282' in x
Out[2]: False

In [3]: 282 in x
Out[3]: True

In [4]: int('282') in x
Out[4]: True

【讨论】:

  • 我将如何解决这个问题? “隐藏”变量每次都会改变
  • 我刚刚更改了代码,我也是堆栈exvhange的新手
  • 很难从你这里的情况说。通常,您需要在列表中寻找正确的东西(int、string 等)。如果您从一个字符串开始但正在寻找一个 int(反之亦然),您需要转换它。
  • 我怎么知道我应该输入什么?
猜你喜欢
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2021-02-17
  • 2019-04-21
  • 1970-01-01
相关资源
最近更新 更多