Python的“ for”循环随机停止

时间:2020-07-18 15:28:33

标签: python for-loop if-statement python-3.6

我知道标题的措词很差,但是我对开始出现的实际问题感到迷惑不解,因为我没有太多可预测的行为。因此,随时可以提出更改建议。

我正在尝试遍历单词列表,后跟标识符(例如,“ Bus”,“ n。”,“ C1”),然后根据这些单词本身将其分类为词典值的几个列表之一每个单词后面的标识符。

我的问题是我无法让Python完成对列表的迭代。条件显然得到满足,然后被忽略了。

我尝试使用'elif'(是否完全满足条件不重要?),并重新使用if / elif语句无效。 下面的当前脚本比我尝试过的任何其他配置都要迭代。

dict = {'noun':[], 'verb':[], 'adj':[], 'adv':[], 'prep':[]}

oxfi = "adaptation n. C1 addiction n. B2 additionally adv. B2 adequate adj. B2 adequately adv. B2 adhere v. C1 adjacent adj. C1 adjust v. B2 adjustment n. C1 administer v. C1 administrative adj. C1 administrator n. C1 admission n. C1 adolescent n. C1 adoption n. C1 adverse adj. C1 advocate n., v. C1 aesthetic adj. C1 affection n. C1 affordable adj. B2"
oxfi = oxfi.split()

for word in oxfi:
    if oxfi[1] == 'n.,' and oxfi[2] == 'v.':
        dict['noun'].append(oxfi[0])
        dict['verb'].append(oxfi[0])
        del oxfi[0:4]
    if oxfi[1] == 'n.':
        dict['noun'].append(oxfi[0])
        del oxfi[0:3]
    if oxfi[1] == 'adj.':
        dict['adj'].append(oxfi[0])
        del oxfi[0:3]
    if oxfi[1] == 'v.':
        dict['verb'].append(oxfi[0])
        del oxfi[0:3]
    if oxfi[1] == 'adv.':
        dict['adv'].append(oxfi[0])
        del oxfi[0:3]
    if oxfi[1] == 'prep.':
        dict['prep'].append(oxfi[0])
        del oxfi[0:3]

print("oxfi = " + str(oxfi) + '\n')
print("dict = " + str(dict) + '\n')

我是Python的中级爱好者,并且会承认这让我感到完全困惑。任何帮助,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

那是因为您要从要迭代的列表中删除元素。我建议这样做

RoundedRectangle(cornerRadius: 25)
            .fill(Color.white)
            .frame(width: 290, height: 315)
            .overlay(
                RoundedRectangle(cornerRadius: 25)
                    .stroke(Color.black, lineWidth: 5)
            )