python - 检查一个列表的元素是否在另一个子列表的元素中
问题描述
我正在使用Faker库。
from faker import Faker
fake = Faker()
我有一个子列表列表(每个 2 个元素);给出数据框的列名,以及函数调用本身。
所有函数名称的列表,不包括以“_”开头的函数名称:
my_list = [[m, 'fake.'+m+'()'] for m in dir(fake) if m[0] != '_']
my_list
>>> [['add_provider', 'fake.add_provider()'],
['address', 'fake.address()'], ...
现在,我想在同一个 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()'], ...
推荐阅读
- winapi - 在 Rust 中实现 IWbemObjectSink 接口
- php - 嵌套的while循环只输出一行来选择php中的标签
- xml - XSD。如何限制单词首字母大写
- javascript - 需要关于 javascript 单词到图像匹配项目的建议
- mysql - 有谁知道如何在两者之间获取范围数据?
- python - 有没有办法在 python kivy 中写波斯语
- vue.js - 如何在 Vue 中将道具传递给 img src?
- c# - 当我在 Excel 中查看 csv 文件时,它们看起来不错。在记事本++中,有几行被拆分,导致 SSIS 导入失败
- python - 消息在 Python firebase-admin 中不起作用
- mongodb - mongodb 的每个分片是否对一个集群中的其他分片不可见?