Python - 提取具有 K 个数字元素的元组
给定一个元组列表,提取所有具有 K 个数字元素的元组。
Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )], K = 2
Output : [(34, 55), (12, 45), (78,)]
Explanation : All tuples have numbers with 2 digits.
Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (782, )], K = 3
Output : [(782,)]
Explanation : All tuples have numbers with 3 digits.
方法 #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))
输出:
The original list is : [(54, 2), (34, 55), (222, 23), (12, 45), (78,)]
The Extracted tuples : [(34, 55), (12, 45), (78,)]
方法#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))
输出:
The original list is : [(54, 2), (34, 55), (222, 23), (12, 45), (78,)]
The Extracted tuples : [(34, 55), (12, 45), (78,)]