dict 包含列表 - 列表理解

dict holds list - list comprehension

我需要收集条件元素列表以进行数据框查询, 我设法创建如下:

column = ['TotalCharges',  'gender']
equal = ['>', '==']
condition = [ 20, 'F']
query = ' & '.join(f'{i} {j} {repr(k)}' for i, j, k in zip(column, equal, condition))

所以查询输出:

TotalCharges > 20 & gender == 'F'

哪个是必需的和正确的,

我很好奇如何使用字典保留列表来实现同样的事情, 意义

df_query_params =  {"column":[],"equal":[],"condition":[]}
df_query_params["column"] = ['TotalCharges',  'gender']
df_query_params["equal"] =  [ '>', '==']
df_query_params["condition"] = [20, 'F']

我尝试了类似的方法,df_query_params.keys()df_query_params.items() 但它不起作用,

列表理解让我有点迷失的事情 是我不知道如何“逐步”添加更多嵌套元素,

好吧,如果您只想使用对给定字典的理解进行相同的查询,一种方法是使用 zip 遍历字典的值,并以类似的方式加入。

>>> ' & '.join(f'{i} {j} {repr(k)}' for i,j,k in zip(*df_query_params.values()))
"TotalCharges > 20 & gender == 'F'"

你只需要换掉裸名。

query = ' & '.join(
    f'{i} {j} {repr(k)}'
    for i, j, k in
    zip(
        df_query_params["column"],
        df_query_params["equal"],
        df_query_params["condition"])
    )