dict支持列表理解



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

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"])
)

最新更新