📜  Python - 提取具有 K 个数字元素的元组

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

Python - 提取具有 K 个数字元素的元组

给定一个元组列表,提取所有具有 K 个数字元素的元组。

方法 #1:使用all() +列表推导

在此,我们通过转换为字符串并检查其长度来检查每个元素是否为 K 位。 all() 用于检查所有元素是否具有相似的大小。

Python3
# Python3 code to demonstrate working of
# Extract K digit Elements Tuples
# Using all() + list comprehension
  
# initializing list
test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# using len() and str() to check length and 
# perform string conversion
res = [sub for sub in test_list if all(len(str(ele)) == K for ele in sub)]
  
# printing result
print("The Extracted tuples : " + str(res))


Python3
# Python3 code to demonstrate working of
# Extract K digit Elements Tuples
# Using all() + filter() + lambda
  
# initializing list
test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# filter() and lambda used for task of filtering
res = list(filter(lambda sub: all(len(str(ele)) == K for ele in sub), test_list))
  
# printing result
print("The Extracted tuples : " + str(res))


输出:

方法#2:使用 all() + filter() + lambda

这类似于上面的方法,不同之处在于 filter() 和 lambda 用于解决过滤问题。

蟒蛇3

# Python3 code to demonstrate working of
# Extract K digit Elements Tuples
# Using all() + filter() + lambda
  
# initializing list
test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# filter() and lambda used for task of filtering
res = list(filter(lambda sub: all(len(str(ele)) == K for ele in sub), test_list))
  
# printing result
print("The Extracted tuples : " + str(res))

输出: