python print 空 list [ ]

请问有没有人帮我解释一下我这个为什么只能print 出来一个空list,我搞了半天,没弄明白啊

img

img

你的代码最后list空的问题 是因为newdic 的value是一个列表,列表不能直接 用if 列表 in patient_list 这样判断,需要循环列表,取列表中的每一个值进行判断,代码修改如下,已成功输出。望采纳哦:

for i,j in new_dic.items():
    for v in j:
        if v in patient_list:
            regular_zombies.append(i)


print(regular_zombies)

regular_zombies的输出结果:

img

你的j是列表对象,patlist的元素都是字符串,你需要遍历j才能比较

参考GPT:根据你的描述,问题出现在最后的 for loop 中,你希望将 new_dic 中的键值对和 patient_list 中的元素进行比较,然后将匹配的键加入到 regular_zombies 列表中。但是你的代码中,你使用了 if j in patient_list 来判断字典中的值是否存在于 patient_list 中,这是不正确的。

new_dic 字典的值是 contacts_dic 字典中的某些值,它们可能不在 patient_list 中。因此,if j in patient_list 这行代码只能判断字典中的值是否与 patient_list 中的某个元素相等,而不能判断值是否存在于 patient_list 中。

要实现你的目标,你可以改为使用 if i in patient_list 来判断字典中的键是否存在于 patient_list 中。以下是修正后的代码:

def find_regular_zombies(contacts_dic, zombie_list):
    new_dic = {}
    patient_list = []
    regular_zombies = []
    for patient in contacts_dic.keys():
        patient_list.append(patient)
    for k, v in contacts_dic.items():
        for potential_zombie in zombie_list:
            if potential_zombie in v:
                new_dic[k] = v
    for i in new_dic.keys():
        if i in patient_list:
            regular_zombies.append(i)
    print(patient_list)
    print(new_dic)
    print(regular_zombies)

这个版本的代码使用 new_dic.keys() 来遍历字典的键,然后使用 if i in patient_list 来检查键是否存在于 patient_list 中。

这个contacts_dic 是没有问题的, 就是最后三行那个 for loop 有点问题, 我想用for loop实现将newdic 里的 value 和 patient_list 一 一对比, 如果在patientlist 里面的话, 比如Zach, 将Zach 对应的 key 加到 regular_zombies list 里面

该回答引用于gpt与OKX安生共同编写:
  • 该回答引用于gpt与OKX安生共同编写:

根据你提供的代码和截图,你定义了一个空列表a,然后在循环中使用append()方法将元素添加到该列表中。但是,由于你在循环结束前尝试打印a列表,因此只能看到最终结果为空列表的情况。

如果你想打印每次循环后的a列表,你需要将print(a)放置在for循环内部,例如:

a = []
for i in range(5):
    a.append(i)
    print(a)

这样就会在循环的每次迭代中打印出a列表的当前状态。

  • 如有用的话,还请采纳哦~
  • 1.你提供的截图显示在 Python 解释器中运行脚本时,确实没有打印出任何东西。这是因为在交互模式下,当脚本结束时,它并不会自动打印变量或列表的值。

你可以尝试将编写的代码保存到.py文件中,然后运行该文件。或者,你可以使用print语句或调试工具来检查列表是否按预期填充。

对于你先前的问题,如果你想检查一个列表是否被成功填充,请尝试使用print()语句或调试工具来输出列表中存储的所有值。例如:


a = []
for i in range(5):
    a.append(i)
    print(a)  # 检查列表是否被成功填充

这样你就可以在每次迭代后检查列表的值。

  1. 那么您需要这样遍历newdic字典中的所有元素,并将其中的值(即患者姓名)与patient_list列表中的元素进行比较。如果匹配成功,则将该键添加到regular_zombies列表中。下面是一个示例实现:
# 遍历 newdic 中的所有元素
for key, value in newdic.items():
    # 判断患者姓名是否在 patient_list 中
    if value in patient_list:
        # 如果在 patient_list 中,将对应的键添加到 regular_zombies 列表中
        regular_zombies.append(key)

# 打印 regular_zombies 列表
print(regular_zombies)

注意,这个示例代码假设newdic字典中的键为患者编号,值为患者姓名。