这样写的 字典支持吗?多个键,但是值相同

使用问题 · 620 次浏览
52夏天 创建于 2023-06-13 02:14

folder_mapping = { "names": [ "name1", "name2", "name3" ], "folder_path": "/path/to/folder" }

这样写的 字典支持吗?多个键,但是值相同;


回复内容
CL 2023-06-13 07:56
#1

上面的例子,没有看出 “多个键,但是值相同” 的情况,可能你的意思是一个键多个值? 前面的是键,后面的是值。

在词典里,不能存在重复的键,但是可以存在重复的值。

你的例子里的name1、name2、name3,是一个列表,可以存在词典的一个键names中,但是列表这种更复杂的数据接口,在使用的时候会需要做转换。通常词典的键应该是简单类型,比如数字、字符串之类的。

52夏天 2023-06-13 09:29
#2

好的,感谢老大回复。因为在Python里面是可以的


如果每个值都是相同的,将所有的名称作为一个列表,而将文件夹路径作为唯一的值。这样,只需要使用一个键来表示这些名称,对应的值就是文件夹路径



folder_mapping = {
    "names": [ "name1", "name2", "name3" ],
    "folder_path": "/path/to/folder"
}

# 根据名称查找文件夹路径
name = "name2"
if name in folder_mapping["names"]:
    folder_path = folder_mapping["folder_path"]
    print(f"The folder path for {name} is {folder_path}")
else:
    print(f"No folder path found for {name}")

。"names"键对应的值是一个包含所有名称的列表,而"folder_path"键对应的值是文件夹路径。

当需要查找某个名称的文件夹路径时,可以先判断该名称是否在"names"列表中,如果存在则使用"folder_path"对应的值作为文件夹路径。

这种方式既简洁又方便,因为只需要维护一个列表和一个唯一的文件夹路径值。无论有多少个名称,它们都会对应同一个文件夹路径。


52夏天 2023-06-13 09:36
#3

因我想用quicker获取微信聊天框标题,对于我每个客户的的文件夹,

比如我  客户 的 微信 可能有好几个,但是指定的文件夹却是一样的,有没有办法实现类似呢?

把客户微信每个 键  和 值  都添加 到字典 里面 目前就想到这个方法。不过没有上面的方法 简洁 方便 而已

level1 2023-06-13 10:05
#4

你好,52夏天:


用quicker获取微信聊天框标题,对于我每个客户的的文件夹

你描述的这点,跟这个动作有点像,推荐一下:

https://getquicker.net/Sharedaction?code=e60c9fbb-b905-4796-7cda-08dab3982e47


其中有给微信对象,关联文件夹的功能。


但是和你的需求不同之处是,这个是1个微信对象关联多个文件夹。你的需求是多个微信对象,关联1个文件夹。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------


专注于各种实用办公工具的制作和分享~

52夏天 回复 level1 2023-06-13 10:23 :

好的,感谢大神分享,目前很多地方还看不懂,我仔细研究研究

level1 2023-06-13 10:43
#5

你好,52夏天:


关于代码部分,如果是实现“多个微信对象打开同一个文件夹”。

1、1个文件夹对应多个微信对象,1个微信对象对应1个文件夹,文件夹有多个。

词典变量({用户数据}):

json:{
"D:\\路径1":["好友A","群聊B"],
"D:\\路径2":["好友C","群聊D"],
}

判断表达式(文本变量{微信对象}):

foreach (string x in {用户数据}.Keys) {
foreach (var y in {用户数据}[x]) {
if (y.ToString() == {微信对象}) {
return x;
}
}
}


2、1个文件夹对应多个微信对象,1个微信对象对应1个文件夹,文件夹唯一。

词典变量({用户数据}):

json:{
"path":"D:\\路径",
"obj":["好友A","群聊B"]
}

判断表达式(文本变量{微信对象}):

foreach (var x in {用户数据}["obj"]) {
	if (x.ToString() == {微信对象}) {
		return {用户数据}["path"];
	}
}


---------------------------------------------------------------------------------------------------------------------------------------------------------------------


专注于各种实用办公工具的制作和分享~

52夏天 回复 level1 2023-06-14 02:00 :

再次感谢大哥热心指导!

回复主贴