如何在C#中通过查询判断字典列值是否包含列表元素并分组输出结果
解决方案
我来给你写个直接能用的Python实现,完美匹配你的需求:
代码示例
# 定义你的目标列表和待匹配的字符串集合 list1 = [110, 120, 130] target_values = ["110_abc_ro", "120_cfg_go", "130_dfg_lo", "110_abc_io", "170_cfg_jo"] # 初始化字典存储分组结果 grouped_results = {} # 遍历列表中的每个数字,筛选匹配项 for num in list1: num_str = str(num) # 筛选所有以当前数字为前缀的字符串 matched_items = [val for val in target_values if val.startswith(num_str)] grouped_results[num] = matched_items # 按要求格式输出结果 for num, matches in grouped_results.items(): print(f"{num}对应的匹配结果为:`{', '.join(matches)}`")
运行结果
110对应的匹配结果为:`110_abc_ro, 110_abc_io` 120对应的匹配结果为:`120_cfg_go` 130对应的匹配结果为:`130_dfg_lo`
逻辑说明
- 首先把列表中的数字转成字符串,方便和目标字符串做前缀匹配;
- 用列表推导式快速筛选出所有以当前数字开头的字符串;
- 最后遍历结果字典,按照你要的格式输出每组匹配项。
如果你的匹配需求不是“前缀匹配”,而是字符串任意位置包含列表中的数字,只需要把val.startswith(num_str)改成num_str in val就行,灵活得很~
内容的提问来源于stack exchange,提问作者jaymin gaudana
相关产品推荐
相关产品推荐

