簡體   English   中英

為什么我的循環在第一輪后停止?

[英]Why does my loop stop after the first round?

我正在嘗試遍歷字段格式的大字符串:字符。 我需要檢查是否所有字段都存在。 首先,我將字符串分成每一對:

import re

passport_string = '''iyr:2013 hcl:#ceb3a1
hgt:151cm eyr:2030
byr:1943 ecl:grn

eyr:1988
iyr:2015 ecl:gry
hgt:153in pid:173cm
hcl:0c6261 byr:1966'''

pass_list = re.split('\n| ', passport_string)

pass_list 出來為:

['iyr:2013', 'hcl:#ceb3a1', 'hgt:151cm', 'eyr:2030', 'byr:1943', 'ecl:grn', '', 'eyr:1988', 'iyr:2015', 'ecl:gry', 'hgt:153in', 'pid:173cm', 'hcl:0c6261', 'byr:1966']

然后我遍歷每一對。 我想將每個拆分:然后 append 到一個新列表。 一旦我到達 pass_list 中的 '',我想將 append 之前的所有內容添加到最終列表中。 這就是我想出的:

fields = []
holder = []
for pair in pass_list:
    field = pair[:pair.find(':')]
    holder.append(field)
    if len(pair) == 0:
        fields.append(holder)
        holder = []

這導致:

[['iyr', 'hcl', 'hgt', 'eyr', 'byr', 'ecl', '']]

為什么我的循環沒有檢查后半部分?

提前致謝。

編輯:我得到了任何想知道的人的答案:

passport_string = '''iyr:2013 hcl:#ceb3a1
hgt:151cm eyr:2030
byr:1943 ecl:grn

eyr:1988
iyr:2015 ecl:gry
hgt:153in pid:173cm
hcl:0c6261 byr:1966
'''

不得不改變結束'''的位置。

passport_string = '''iyr:2013 hcl:#ceb3a1
hgt:151cm eyr:2030
byr:1943 ecl:grn

eyr:1988
iyr:2015 ecl:gry
hgt:153in pid:173cm
hcl:0c6261 byr:1966
'''

改變底部'''的位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM