Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中搜索具有多个值的字典?_Python_Jupyter Notebook - Fatal编程技术网

如何在Python中搜索具有多个值的字典?

如何在Python中搜索具有多个值的字典?,python,jupyter-notebook,Python,Jupyter Notebook,我是Python新手,我对用Python搜索字典有疑问 我的文件如下所示,我想搜索 名称包含“Jige”,大小为“29”(即第1行) 名称包含“修剪”,大小为“31”(最后一行) 不知道如何用Python3编写代码。最好是有一个search_key变量从用户那里获取参数 提前谢谢 我的档案: [{'name': 'Jige 29 clutch', 'price': '250', 'size': '29'}, {'name': 'Her 33 bag', 'price': '530', 'siz

我是Python新手,我对用Python搜索字典有疑问

我的文件如下所示,我想搜索

名称包含“Jige”,大小为“29”(即第1行) 名称包含“修剪”,大小为“31”(最后一行)

不知道如何用Python3编写代码。最好是有一个search_key变量从用户那里获取参数

提前谢谢

我的档案:

[{'name': 'Jige 29 clutch', 'price': '250', 'size': '29'},
 {'name': 'Her 33 bag', 'price': '530', 'size': '33'},
 {'name': 'Tote 24 bag', 'price': '480', 'size': '24'},
 {'name': 'Yona 34 bag', 'price': '400', 'size': '34'},
 {'name': 'Trim 24 bag', 'price': '390', 'size': '24'},
 {'name': 'Trim double 31 bag', 'price': '400', 'size': '31'}]

您可以简单地将其转换为dataFrame,如下所示:

df = pd.DataFrame(d)
# name contains 'Jige', size is '29' and name contains 'Trim' , size is '31'
df[(df['name'].str.contains('Jige')) | (df['name'].str.contains('Trim')) |  (df['size'] == 31) ]
我使用或(|)来显示数据,但您可以使用和(&)


您可以简单地将其转换为数据帧,如下所示:

df = pd.DataFrame(d)
# name contains 'Jige', size is '29' and name contains 'Trim' , size is '31'
df[(df['name'].str.contains('Jige')) | (df['name'].str.contains('Trim')) |  (df['size'] == 31) ]
我使用或(|)来显示数据,但您可以使用和(&)

我想搜索名称包含“Jige”,大小为“29”,名称包含“Trim”,大小为“31”

没有符合您要求的条件的记录。
如果您将
操作符切换到
操作符,您将获得很少的记录

data= [{'name': 'Jige 29 clutch', 'price': '250', 'size': '29'},
 {'name': 'Her 33 bag', 'price': '530', 'size': '33'},
 {'name': 'Tote 24 bag', 'price': '480', 'size': '24'},
 {'name': 'Yona 34 bag', 'price': '400', 'size': '34'},
 {'name': 'Trim 24 bag', 'price': '390', 'size': '24'},
 {'name': 'Trim double 31 bag', 'price': '400', 'size': '31'}]

filtered_data = [e for e in data if 'Jige' in e['name'] and 'Trim' in e['name'] and e['size'] == '29' and e['size'] == '31']

print(f'filtered_data: {filtered_data}')

filtered_data2 = [e for e in data if 'Jige' in e['name'] or 'Trim' in e['name'] or e['size'] == '29' or e['size'] == '31']

print(f'filtered_data2: {filtered_data2}')
我想搜索名称包含“Jige”,大小为“29”,名称包含“Trim”,大小为“31”

没有符合您要求的条件的记录。
如果您将
操作符切换到
操作符,您将获得很少的记录

data= [{'name': 'Jige 29 clutch', 'price': '250', 'size': '29'},
 {'name': 'Her 33 bag', 'price': '530', 'size': '33'},
 {'name': 'Tote 24 bag', 'price': '480', 'size': '24'},
 {'name': 'Yona 34 bag', 'price': '400', 'size': '34'},
 {'name': 'Trim 24 bag', 'price': '390', 'size': '24'},
 {'name': 'Trim double 31 bag', 'price': '400', 'size': '31'}]

filtered_data = [e for e in data if 'Jige' in e['name'] and 'Trim' in e['name'] and e['size'] == '29' and e['size'] == '31']

print(f'filtered_data: {filtered_data}')

filtered_data2 = [e for e in data if 'Jige' in e['name'] or 'Trim' in e['name'] or e['size'] == '29' or e['size'] == '31']

print(f'filtered_data2: {filtered_data2}')

这回答了你的问题吗?这回答了你的问题吗?请不要使用图片作为答案。使用代码(作为文本)我确实使用了代码,我显示了结果的图像,图像有什么问题吗?请不要使用图像作为答案。使用代码(作为文本)我确实使用了代码,我显示了结果的图像,图像有什么问题?