空值是否有python特殊字符?

时间:2013-11-19 04:53:24

标签: python

我不知道怎么问这个,所以我要解释我在做什么。我正在尝试搜索只有2个值的列表列表。第一个值我不关心第二个我怎么需要检查,如果它存在,我需要第一个值。实施例

list = [[1,'text1'],[1,'text2'],[3,'text3'],[2,'text4']]

所以基本上我需要知道是否有像%或者这样的字符!在find中使用时基本上意味着任何值。链接查找(!,'text2')会得到我的值1.(我知道这不会那样)。 Ik我可以选择只搜索列表中的第二个值,但是如果有特殊字符则这是不必要的代码。

4 个答案:

答案 0 :(得分:1)

没有特定的字符或值,但您可以创建自己的标记对象,也可以使用None。只需确保使用is在代码中检测它。

# fmod.py
Any = object()
def find(first=Any, second=Any):
  if first is Any:
   ...

...

import fmod

fmod.find(None, 'text2')
fmod.find(fmod.Any, 'text2')

答案 1 :(得分:0)

尝试None值。 您可以在此处阅读有关它的更多信息:Python 3 Constrants

答案 2 :(得分:0)

当你说“我需要检查的第二个以及它是否存在我需要第一个值”时,我认为你需要检查第二个值是否是a)那里(如果列表有两个元素)和b)非零长度(假设它们总是字符串)。这导致我:

list_to_search = [[1,'text1'],[1,'text2'],[3,'text3'],[2,'text4'], [3], [4, '']]
firsts_with_seconds = [item[0] for item in list_to_search 
                               if len(item) > 0 and len(item[1]) > 0]

答案 3 :(得分:0)

您可以使用列表解析来执行此操作:

def findit(word, lst):
    return [el[0] for el in lst if el[1] == word][0]