【问题标题】:Lists in Python 2.7 (compatible with 3.x)Python 2.7 中的列表(与 3.x 兼容)
【发布时间】:2015-12-23 14:08:55
【问题描述】:

我有一个代码,在该代码中,我要求提供 IP 地址(它可以是任何随机的,因为该代码只是为了展示,换句话说,实际上并没有做任何事情),我将其拆分为“。”作为分隔符,我想检查一下,它有四个段,就像 IP 一样。我不想检查段的内容,我只想检查它是否可以是真实 IP(我知道 IP 的有效性有多个条件,但让我们保持简单)。

如何检查一个列表是否有四个“元素”,而不会触发任何 python 错误。如果需要,我可以提供有问题的代码部分。

编辑 1: 谢谢你们这么快的回答。这是您要求的代码,略有更改,但无法正常工作(以前的版本也没有)(我从 fnmatch 导入了 fnmatch 并且功能已经定义):

if fnmatch(list.split("."), "[*,*,*,*]"):
    success()
else:
    fail()

我正在尝试获取一些东西,当列表有四个项目时将调用success(),如果没有则调用fail()。

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在发布者已经尝试自己解决问题时才提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 您有两个问题,第一个询问如何检查给定字符串是否为 IP 地址,第二个询问如何确定列表是否有 4 个项目。您似乎对第一个问题有正确的想法(使用“。”作为分隔符拆分字符串),您的第二个问题可以通过参考 Python 文档中的列表类型轻松回答。多尝试一下,如果你仍然卡住,你可以下次发布你的代码。
  • 最好在提问时包含代码示例。举例说明你拥有什么以及你想要得到什么。
  • @MorganThrapp 我从不希望你为我编写代码,如果你仔细阅读了这篇文章,你就会知道,你所要做的就是索要代码。所以,我就是这么做的。如果这就是你所说的,你本可以更直截了当。
  • @JanNovák 为什么要使用 fnmatch(文件名匹配)来检查列表的长度是否为 4?看来您可能需要阅读 Python 教程。任何好的教程都在早期就介绍了查找对象的长度。

标签: python python-2.7 python-3.x


【解决方案1】:

您需要在此处进行更多调试。例如,检查你的拆分是否给了你想要的东西。其次,请阅读https://stackoverflow.com/help/mcve——这列出了我们对发帖的期望。

提供实际的输入和错误消息会更快地给您答案:您将一个列表提供给 fnmatch,它需要一个字符串。你走在正确的轨道上,但你可以更简单地做到这一点。

def success():
    print "good"

def fail():
    print "bad"

list = "10.10.10.127"
fields = list.split(".")

print fields

if len(fields) == 4:
    success()
else:
    fail()

您是否还需要检查每个字段是否完全是数字?

【讨论】:

  • 谢谢,这个对我有用。检查字段是否为数字会很有帮助。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2013-03-03
  • 2015-09-23
  • 2018-09-16
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 2012-02-11
  • 2020-02-23
相关资源
最近更新 更多