每当州的第一个字母与前一个州的第一个字母不同时,如何打印空白行

时间:2015-11-08 23:41:46

标签: python

我将状态列表作为.txt文件。我能够读取每一行,剥离换行符并将数据附加到states_list,但每当当前状态的第一个字母与前一个州的第一个字母不同时,我还需要打印一个空行。

以下是我的尝试:

states_list = []
n = 0

with open('states.txt', 'r') as f:
    for line in f:
        state = line.strip('\n')
        states_list.append(state)

for each in states_list:
    if states_list[n][0] != states_list[n+1][0]:
        print("\n")
    print(each)

2 个答案:

答案 0 :(得分:1)

如果您需要与其他成员进行比较,请不要使用for-each循环。

for i in range(len(states_list)):
     if i > 0:
         if states_list[i][0] != states_list[i-1][0]:
             print('\n')
     print(states_list[i])

答案 1 :(得分:0)

另一种解决方法是使用zip()

with open('states.txt', 'r') as f:
    states = [line.strip('\n') for line in f]

for a, b in zip(states, states[1:]):
    if a[0] != b[0]:
        print("\n")
    print(a)
print(states[-1])

最后,它产生与jeff carey的答案相同的结果,但也许是以更加Pythonic /优雅的方式。