python 嵌套列表检索并打印特定元素
python nested list retrieve and print specific elements
我有一个看起来像这样的嵌套列表。它应该代表人和他们可能的联系。我需要输出引号中的数字以及他们可能知道的连接(子列表中冒号后有 2 或 3 的数字以及他们可能的人员列表(子列表中冒号后有 4 或更多的数字),所以它看起来像这样:
6:Might(1,3,4,7,11)
1:Might(4,6,7) Probably(11)
4:Might(1,3,6,11,12)
这是我的嵌套列表
connect_cnt = [(6, {3: 3, 4: 3, 7: 2, 13: 1, 1: 3, 11: 2, 12: 1}),
(1, {7: 3, 5: 1, 9: 2, 11: 4, 10: 1 , 2: 1, 13: 1, 3: 2, 6: 3, 4: 3, 12: 2}),
(4, {3: 2, 7: 3, 6: 3, 13: 1, 1: 3, 11: 2,12: 3, 5: 1, 2: 1, 9: 1}),
我不知道该怎么做。我为初学者尝试了这个,只是想看看我是否能得到计数,但它没有用。
final_dict
for row in range(len(connect_cnt)):
for col in range(len(connect_cnt[row])):
key,value = connect_cnt[row].split(':')
if value > 1:
final_dict[key] = value
即使我很冷,也只是在嵌套列表中获取我需要打印的那些。我是初学者,对嵌套列表没有太多经验。
我不确定您的答案的确切解决方案,但我可以提供一个通用的解决方案,您可以根据自己的需要进行调整。
l = [(1, {2: 3, 4: 5}), (6, {7: 8, 9: 10})]
# to change a value
l[0][1][2] = 100 # now l = [(1, {2: 100, 4: 5}), (6, {7: 8, 9: 10})]
如果这对您的示例不起作用,请提供更多信息,我会尽力提供帮助。
编辑:
此代码应将所有键值对提取到另一个字典,因为字典始终是子列表的第二个元素。
final_dict = {}
for i in l:
for j in i[1].keys():
final_dict[j] = i[j]
编辑 2:
我想我现在明白了。这段代码应该可以做到:
for i in l:
for j in i[1].keys():
if i[1][j] <= 1:
del i[1][j]
编辑 3:
对不起。让我知道这是否有效:
l2 = []
for i in l:
d = {}
for j in i[1].keys():
if i[1][j] > 1:
d[j] = i[1][j]
l2.append((i[0], d))
我有一个看起来像这样的嵌套列表。它应该代表人和他们可能的联系。我需要输出引号中的数字以及他们可能知道的连接(子列表中冒号后有 2 或 3 的数字以及他们可能的人员列表(子列表中冒号后有 4 或更多的数字),所以它看起来像这样:
6:Might(1,3,4,7,11)
1:Might(4,6,7) Probably(11)
4:Might(1,3,6,11,12)
这是我的嵌套列表
connect_cnt = [(6, {3: 3, 4: 3, 7: 2, 13: 1, 1: 3, 11: 2, 12: 1}),
(1, {7: 3, 5: 1, 9: 2, 11: 4, 10: 1 , 2: 1, 13: 1, 3: 2, 6: 3, 4: 3, 12: 2}),
(4, {3: 2, 7: 3, 6: 3, 13: 1, 1: 3, 11: 2,12: 3, 5: 1, 2: 1, 9: 1}),
我不知道该怎么做。我为初学者尝试了这个,只是想看看我是否能得到计数,但它没有用。
final_dict
for row in range(len(connect_cnt)):
for col in range(len(connect_cnt[row])):
key,value = connect_cnt[row].split(':')
if value > 1:
final_dict[key] = value
即使我很冷,也只是在嵌套列表中获取我需要打印的那些。我是初学者,对嵌套列表没有太多经验。
我不确定您的答案的确切解决方案,但我可以提供一个通用的解决方案,您可以根据自己的需要进行调整。
l = [(1, {2: 3, 4: 5}), (6, {7: 8, 9: 10})]
# to change a value
l[0][1][2] = 100 # now l = [(1, {2: 100, 4: 5}), (6, {7: 8, 9: 10})]
如果这对您的示例不起作用,请提供更多信息,我会尽力提供帮助。
编辑: 此代码应将所有键值对提取到另一个字典,因为字典始终是子列表的第二个元素。
final_dict = {}
for i in l:
for j in i[1].keys():
final_dict[j] = i[j]
编辑 2: 我想我现在明白了。这段代码应该可以做到:
for i in l:
for j in i[1].keys():
if i[1][j] <= 1:
del i[1][j]
编辑 3: 对不起。让我知道这是否有效:
l2 = []
for i in l:
d = {}
for j in i[1].keys():
if i[1][j] > 1:
d[j] = i[1][j]
l2.append((i[0], d))