📜  Python|测试字符串是否单调

📅  最后修改于: 2022-05-13 01:55:07.650000             🧑  作者: Mango

Python|测试字符串是否单调

有时,在使用Python字符串时,我们可能会遇到一个问题,即我们有一个字符串,我们希望检查一个字符串是连续增加还是减少。这种问题在数据和日常编程中都有应用。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用map() + split() + 列表推导
上述功能的组合可用于执行此任务。在此,我们将字符串拆分为列表,用 delim 分隔,然后对于单调的列表问题测试,我们采用列表理解。

# Python3 code to demonstrate working of 
# Test if String is Monotonous
# Using list comprehension + map() + split()
  
# initializing string
test_str = "6, 5, 4, 3, 2, 1"
  
# printing original string
print("The original string is : " + test_str)
  
# initializing delim 
delim = ", "
  
# Test if String is Monotonous
# Using list comprehension + map() + split()
temp = list(map(int, test_str.split(delim)))
direc = temp[-1] > temp[0] or -1
res = temp == list(range(temp[0], temp[-1] + direc, direc))
  
# printing result 
print("Is string Monotonous ? : " + str(res)) 
输出 :
The original string is : 6, 5, 4, 3, 2, 1
Is string Monotonous ? : True

方法 #2:使用map() + split() + zip() + len()
上述功能的组合可用于执行此任务。在这里,我们执行上面的拆分任务,但是执行单调的任务是由 zip() 和 len() 完成的。

# Python3 code to demonstrate working of 
# Test if String is Monotonous
# Using map() + split() + zip() + len()
  
# initializing string
test_str = "6, 5, 4, 3, 2, 1"
  
# printing original string
print("The original string is : " + test_str)
  
# initializing delim 
delim = ", "
  
# Test if String is Monotonous
# Using map() + split() + zip() + len()
temp = list(map(int, test_str.split(delim)))
diff = set(i - j for i, j in zip(temp, temp[1:]))
res = len(diff) == 1 and diff.pop() in (1, -1)
  
# printing result 
print("Is string Monotonous ? : " + str(res)) 
输出 :
The original string is : 6, 5, 4, 3, 2, 1
Is string Monotonous ? : True