我将状态列表作为.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)
答案 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 /优雅的方式。