我正在尝试比较 numbers.txt 文件中的数字。困扰我的是 Python 中的负索引属性,其中负数实际上意味着从右到左阅读。
有没有办法只忽略第一次比较?我在哪里输出没有以前的数字(参见所需的输出)
重要的是我无法更改我的 numbers.txt 文件。这些是我从另一个函数自动生成的。
$ cat numbers.txt
1
2
3
4
5
代码:
with open('numbers.txt') as file:
lines = file.read().splitlines()
print lines
for i in range(len(lines)):
previous_number = lines[i-1]
current_number = lines[i]
print "current Nr: ", current_number
print "previous Nr: ", previous_number
if current_number > previous_number:
print " current Nr is larger"
else:
print "current Nr is smaller"
输出:
['1', '2', '3', '4', '5']
current Nr: 1
previous Nr: 5
current Nr is smaller
current Nr: 2
previous Nr: 1
current Nr is larger
current Nr: 3
previous Nr: 2
current Nr is larger
current Nr: 4
previous Nr: 3
current Nr is larger
current Nr: 5
previous Nr: 4
current Nr is larger
期望的输出
['1', '2', '3', '4', '5']
current Nr: 1
previous Nr: There is no previous!
current Nr is none
current Nr: 2
previous Nr: 1
current Nr is larger
current Nr: 3
previous Nr: 2
current Nr is larger
current Nr: 4
previous Nr: 3
current Nr is larger
current Nr: 5
previous Nr: 4
current Nr is larger
最佳答案
您可以使用enumerate
来检查索引
for i, value in enumerate(lines):
previous_number = "None"
CurrentNrText = "None"
if i != 0:
previous_number = lines[i-1]
if current_number > previous_number:
CurrentNrText = " current Nr is larger"
else:
CurrentNrText = "current Nr is smaller"
current_number = lines[i]
print("current Nr: ", current_number)
print("previous Nr: ", previous_number)
print(CurrentNrText)
关于python - Python 中的列表仅避免第一个负数元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019960/