【问题标题】:Removing items in one array based on whats in another array - python根据另一个数组中的内容删除一个数组中的项目 - python
【发布时间】:2016-07-19 11:55:44
【问题描述】:

我正在尝试创建一个函数,根据 iss_answer 数组中的内容从 all_cards 中删除项目。我的 iss_answer 数组会在我的程序中经常更改,所以我不能只输入 all_cards.remove('Professor Plum','Dinning Room','Rope')。

iss_answer = ['Professor Plum','Dinning Room','Rope']

def computer_1(array):

    all_cards = ['professor plum','colonel mustard',
                 'mrs. white','mr. green','miss scarlet',
                 'mrs. peacock', 'revolver','wrench',
                 'candle stick','lead pipe','knife','rope',
                 'kitchen','hall','dinning room','lounge',
                 'study','billiard room',
                 'conservatory','library','ballroom']

    all_cards.remove(iss_answer) 
    print all_cards       


    return all_cards

computer_1(iss_answer)

【问题讨论】:

    标签: python arrays function


    【解决方案1】:

    使用Sets 降低复杂度

    difference = list(set(all_cards) - set(iss_answer))
    

    【讨论】:

      【解决方案2】:

      为什么不快速列表理解 - 如果需要,只需更改单词大小写以匹配两个列表,并在所有使用列表理解后去掉前导和尾随空格。

      iss_answer = ['Professor Plum','Dinning Room','Rope']
      
      def computer_1(array):
      
          all_cards = ['professor plum','colonel mustard',
                       'mrs. white','mr. green','miss scarlet',
                       'mrs. peacock', 'revolver','wrench',
                       'candle stick','lead pipe','knife','rope',
                       'kitchen','hall','dinning room','lounge',
                       'study','billiard room',
                       'conservatory','library','ballroom']
      
          s = [i for i in all_cards if i.strip().lower() not in map(str.strip,map(str.lower,iss_answer))]
          print s      
      
      
          return s
      
      computer_1(iss_answer)
      

      输出-

      ['colonel mustard', 'mrs. white', 'mr. green', 'miss scarlet', 'mrs. peacock', 'revolver', 'wrench', 'candle stick', 'lead pipe', 'knife', 'kitchen', 'hall', 'lounge', 'study', 'billiard room', 'conservatory', 'library', 'ballroom']
      

      但如果您不需要维护顺序,因为集合是无序的数据结构,输出列表中的元素您可以使用@bakkal 和@Saif Asif 提到的答案。 here.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-18
        • 2019-06-06
        • 2021-10-25
        • 2022-11-28
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 2016-07-26
        相关资源
        最近更新 更多