使用python“or”筛选名称或顺序以查找nam的所有lowcase和所有caps版本

2024-06-07 00:55:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在使用它过滤服务器端的数据,以便在前端用于图形。我需要从给定的名称中筛选订单,我可以使用以下代码成功完成此操作:

def get_filteres_orders(dataset_id, order):
data = dt.get(dataset_id).aslist()
filtered_data = [x for x in data if x['PRIMARY_MNEMONIC'] == 
order ]
filtered_data.sort(key=lambda x: to_data_time(x['ORDER_DTM']), reverse=True)
return filtered_data

但是,我需要搜索订单名称的小写和全大写版本。例如,当我输入阿斯匹林时,我得到一个单独的顺序数组,而不是我输入阿斯匹林时。我尝试将|或操作数添加到all caps版本中,但没有效果。以下是我所拥有的:

def get_filteres_orders(dataset_id, order):
data = dt.get(dataset_id).aslist()
#filtered_data = [x for x in data if x['PRIMARY_MNEMONIC'] == order ]
#filtered_data = [x for x | x.upper() for x in data if x['PRIMARY_MNEMONIC'] 
== order ] 
filtered_data = [x | x.upper() for x in data if x['PRIMARY_MNEMONIC'] == 
order ]
filtered_data.sort(key=lambda x: to_data_time(x['ORDER_DTM']), reverse=True)
return filtered_data

你知道我做错了什么吗? 提前谢谢


Tags: in订单名称idfordatagetif
1条回答
网友
1楼 · 发布于 2024-06-07 00:55:35

为什么不在python中使用“or”not“|”,顺便说一句python有一个filter函数,这样您也可以这样做呢

filter(function, iterable)

filter(lambda x: x['PRIMARY_MNEMONIC'].lower() == order.lower(), data)

假设数据是一个字典x | x.upper()就太奇怪了

相关问题 更多 >