我有一个(大约100个)值的列表,如下所示:
list = ['40201020', '45102020', '25203020', '20106020', '25301020', '40402030', '20202010']
我需要一本字典
a)列出每个值的所有父级。父项少一位(从右起):
child = '40201020'
parent = '4020102'
这种格式比较理想:
dict['4020102parent'] = '40201020'
b)我需要父母的所有父母,最多剩下一位。所以父'4020102'得到这个父:
dict['4020102parent"] = '402010'
以及
dict['402010parent"] = '40201'
等等
c)然后我需要每个父代的所有最后的子代作为一个列表。我说的最后一个后代是指原始列表的8位代码。所以数字“4”会有以下代码:
dict['4children'] = ['40201020', '45102020', '40402030']
或:
dict['40children'] = ['40201020', '40402030']
您的列表是否总是包含字符串?是否需要词典?如果您总是使用字符串,并且只想找到一种查找父对象和子对象的方法,那么我建议您使用python的字符串处理功能。您可以这样定义函数
parent
和children
:然后调用
parent('40201020')
将产生'4020102'
,调用children(my_list, '40')
将产生['40201020', '40402030']
。您可以递归地调用parent,以获得一个字符串,每次少一个项。你知道吗我仍然很困惑,当您可以将递归结果存储在一个列表中并且可以使用str.startswith开始()方法:
我仍然将parentdict存储在dict\ u数据中,您可以使用它:
输出:
正如我在评论中所说的那样,一本每一个键都包含孩子的字典似乎是一个更合理的想法。你知道吗
为了实现这一点,我们可以循环遍历列表中的每个元素(我将其重命名为
l
,以避免重写内置的list()
函数),并将该值附加到字典中其所有父元素的列表d
。你知道吗上述方法的代码将沿着以下几行:
这将允许您执行以下操作:
相关问题 更多 >
编程相关推荐