从字典中删除具有不同键的对应值

时间:2021-01-24 13:34:06

标签: python list python-2.7 dictionary del

我是 Python 新手,正在编写航班预订系统程序。我在删除乘客详细信息时遇到了删除问题,因为我有包含多个键的字典,并且键的值位于单独的单独列表中。

我尝试了多种使用 pop 函数的方法,它只删除特定的 Key 和相应的值

如何用不同的键删除Passenger Detail的所有值。

例如:是用户输入'tes'然后我需要删除相应的flightId、Age、destination、dlytype、source

我收到如下用户输入

   Passenger = raw_input("Enter Name to delete")

字典值显示如下:

  {'Passenger': ['tes', 'ssss'],
  'FlightId': ['ssss', 'tre'],
   'Age': ['12', '34'], 
    'Destination': ['ssss', 'ssssss'],
    'Flytype': ['economy', 'business'],
   'Source': ['sss', 'sssss']}

字典声明:

          Name_list=[]
          Age_list=[]
          Source_list=[]
          Destination_list=[]
          Flytype_list=[]
          FlightId_list=[]

     Passenger_dict= {'Passenger':Name_list,
            'Age':Age_list,
            'Source':Source_list,
            'Destination':Destination_list,
            'Flytype':Flytype_list,'FlightId':FlightId_list}

请帮忙解决这个问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

更好的数据结构来存储您的数据将是 listdict,其中每个 dict 将代表一个乘客对象。 (或者,如果某些东西对乘客来说是独一无二的,例如 passenger_id,请使用它来创建字典的字典,其中 passenger_id 作为主字典的键)

但是,在您当前的数据结构中,您可以执行以下操作:

  • 第 1 步: 根据 Passenger 获取乘客索引。如果在列表中找不到 ValueError,它将引发 name 异常

    passenger_index = Passenger_dict['Passenger'].index(Passenger)
    
  • 第 2 步:从所有列表中删除 passenger_index 索引处的元素

     for v in Passenger_dict.values():
         del v[passenger_index]