Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于另一个数组中的内容删除一个数组中的项-python_Python_Arrays_Function - Fatal编程技术网

基于另一个数组中的内容删除一个数组中的项-python

基于另一个数组中的内容删除一个数组中的项-python,python,arrays,function,Python,Arrays,Function,我正在尝试创建一个函数,根据iss_应答数组中的内容从所有_卡中删除项目。我的iss_答案数组在我的程序中会经常更改,所以我不能只键入所有的卡片。删除“Professor Plum”、“Dining Room”、“Rope” iss_answer = ['Professor Plum','Dinning Room','Rope'] def computer_1(array): all_cards = ['professor plum','colonel mustard',

我正在尝试创建一个函数,根据iss_应答数组中的内容从所有_卡中删除项目。我的iss_答案数组在我的程序中会经常更改,所以我不能只键入所有的卡片。删除“Professor Plum”、“Dining 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)

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

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的答案。更多信息请参见。

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

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的答案。更多信息请访问。

用于降低复杂性

difference = list(set(all_cards) - set(iss_answer))
用于降低复杂性

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