簡體   English   中英

檢查一個列表的元素是否在另一個子列表的元素中

[英]Check if elements of one list are in elements of other sub-list

我正在使用Faker庫。

from faker import Faker
fake = Faker()

我有一個子列表列表(每個 2 個元素); 給出 dataframe 和 function 調用本身的列名稱。


所有 function 名稱的列表,不包括以“_”開頭的函數名稱:

my_list = [[m, 'fake.'+m+'()'] for m in dir(fake) if m[0] != '_']
my_list
>>> [['add_provider', 'fake.add_provider()'],
 ['address', 'fake.address()'], ...

現在,我想在同一個 for 循環中添加另一個條件,不包括 function 名稱。

嘗試的解決方案:

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

Output 為空:

[]

任何更簡潔的解決方案將不勝感激。

也許稍微大修一下就可以了,看看以下內容,如果這符合您的目標:

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()'], ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM