Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查一个列表的元素是否在其他子列表的元素中_Python_String_List_For Loop_Substring - Fatal编程技术网

Python 检查一个列表的元素是否在其他子列表的元素中

Python 检查一个列表的元素是否在其他子列表的元素中,python,string,list,for-loop,substring,Python,String,List,For Loop,Substring,我正在使用伪造库 from faker import Faker fake = Faker() 我有一个子列表列表(每个2个元素);提供数据帧和函数调用本身的列名 所有函数名的列表,不包括以“\开头的函数名: 现在,我想在相同的for循环中添加另一个条件,不包括函数名 尝试的解决方案: exclude = ['add_provider'] fake_cols = [[m, 'fake.'+m+'()'] for m in dir(fake) if function_name in exclu

我正在使用伪造库

from faker import Faker
fake = Faker()
我有一个子列表列表(每个2个元素);提供数据帧和函数调用本身的列名


所有函数名的列表,不包括以“\开头的函数名:

现在,我想在相同的for循环中添加另一个条件,不包括函数名

尝试的解决方案:

exclude = ['add_provider']
fake_cols = [[m, 'fake.'+m+'()'] for m in dir(fake) if function_name in exclude or function_name[:1] == "_"]
fake_cols
输出为空:

[]

任何更简洁的解决方案都将受到欢迎。

也许稍微大修一下就可以了,看看下面,如果这符合您的目标:

import faker

faker = faker.Faker()

exclude = ["add_provider", "address"]
faker_functions ={}
for function_name in dir(faker):
    if function_name in exclude or function_name[:1] == "_":
        continue
    try:
        faker_functions[function_name] =  getattr(faker, function_name)
    except:
        continue

def get_list_of_fake_functions():
    return list(faker_funcktions.keys())

def get_fake(fake_function):
    return faker_functions[fake_function]()

my_list =  [[key, "faker."+ key+ "()"] for key in faker_functions.keys()]
my_list
错误如预期,因为已排除:

get_fake("zipcode_plus4")
KeyError: 'zipcode_plus4'
否则后果如何

get_fake("zipcode_plus4")
Out[38]: '71875-8723'
我的清单

my_list[:10]
Out[57]: 
[['administrative_unit', 'faker.administrative_unit()'],
 ['am_pm', 'faker.am_pm()'], ...

把任何东西都扔掉?这行吗?它仍然在我的“排除”列表中包含“add_provider”方法名。上面的最新代码和输出
[m,'fake.+m+'()'
m是一个列表,是吗?m是一个方法的名称,所以我的列表被精确地构建为dir(fake)?这会产生一个空的
dict
{}
。我不认为有必要使用
try catch
。我认为我的问题在于
for loop
if condition
。我确保了我的
Faker
实例的名称与你的相同。这不能生成空字典,我用上面的编码得到了所有函数的完整记录。你可以只执行我剪下的代码,看看,如果你你可以执行
get\u fake(“zipcode\u plus4”)
?我添加了一个
my\u list
变量,这就是你需要的吗?非常欢迎!编程愉快!
my_list[:10]
Out[57]: 
[['administrative_unit', 'faker.administrative_unit()'],
 ['am_pm', 'faker.am_pm()'], ...