为什么不通过python删除列表中所有问候的字符串?

时间:2017-07-23 01:53:18

标签: python python-3.x for-loop tokenize

。删除无法正常工作!

我正在制作艾,我正试图删除任何属于艾未未的名字或问候语!但是,即使有人知道发生了什哦和what_person_said_l_wt是用小写标记的用户输入(使用.lower),只是你知道, 谢谢,这是我的代码:

Static_Greetings = ["hey","hi","hello"]
Name = ["jarvis"]


for word in what_person_said_l_wt:
      if word in Static_Greetings or word in Name:
            print (word)
            what_person_said_l_wt.remove(word)

结果

input: hey jarvis what is the weather?


Modified: jarvis what is the weather

它不会同时删除"嘿"和#34;贾维斯"只留下问题:"天气是什么?"因为它应该!

2 个答案:

答案 0 :(得分:3)

当您从中删除元素时,您正在遍历列表。

制作列表的副本,然后迭代它。这样,您仍然可以从原始列表中删除,同时保留您在循环中的位置。

答案 1 :(得分:0)

迭代时无法修改列表。相反,使用这样的东西。它将删除(过滤掉)静态问候和名称中的单词。

Static_Greetings = ["hey","hi","hello"]
Name = ["jarvis"]

what_person_said = 'hey jarvis what is the weather?'
print(' '.join([word for word in what_person_said.split()
    if word not in Static_Greetings + Name]))
  

天气怎么样?