📜  Python – 测试所有数字是否从 %K 数字开始

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

Python – 测试所有数字是否从 %K 数字开始

有时我们可能会遇到一个问题,如果列表包含 % K 的数字,我们需要查找它。这个特定的实用程序在日间编程中有一个应用程序。让我们讨论一些可以实现此任务的方法。

方法 #1:使用列表理解 + map()
我们可以通过将元素转换为字符串然后测试字符串的起始元素来解决这个问题,如果它们是 % K 我们可以返回 true 然后转换为 set 并测试结果的大小是否为 1。转换由 map 完成,set函数转换为 set 并列表理解检查字符串的第一个元素。

# Python3 code to demonstrate 
# Test if all digits starts from % K digit
# using list comprehension + map() 
  
# initializing list 
test_list = [65, 3, 92, 332] 
  
# printing original list 
print("The original list : " + str(test_list)) 
  
# initializing K 
K = 3
  
# using list comprehension + map() 
# Test if all digits starts from % K digit
res = len(set( not(int(sub[0]) % K) for sub in map(str, test_list))) == 1
  
# print result 
print("Does each element start with % K digit ? " + str(res)) 
输出 :
The original list : [65, 3, 92, 332]
Does each element start with % K digit ? True

方法 #2:使用all() + 列表推导
这是可以解决此问题的另一种方法。在此,我们使用 all函数检查所有元素并返回布尔结果,列表推导式执行 str函数转换字符串的部分,并检查第一个元素的第一个数字为 % K 的所有元素。

# Python3 code to demonstrate 
# Test if all digits starts from % K digit
# using all() + list comprehension 
  
# initializing list 
test_list = [65, 3, 92, 332] 
  
# printing original list 
print("The original list : " + str(test_list)) 
  
# initializing K
K = 3
  
# using all() + list comprehension 
# Check if front digit is Odd in list 
res = not all(int(str(i)[0]) % K for i in test_list) 
  
# print result 
print("Does each element start with % K digit ? " + str(res)) 
输出 :
The original list : [65, 3, 92, 332]
Does each element start with % K digit ? True