Python – 用 K 修剪元组
给定元组列表,按 K 修剪每个元组。
例子:
Input : test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)], K = 2
Output : [(2,), (9,), (2,), (2,)]
Explanation : 2 elements each from front and rear are removed.
Input : test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)], K = 1
Output : [(3, 2, 1), (4, 9, 2), (1, 2, 3), (8, 2, 1)]
Explanation : 1 element each from front and rear are removed.
方法#1:使用循环+切片
在这里,我们通过使用切片,将元组转换为列表,然后重新转换为元组来省略前后 K 个元素。
Python3
# Python3 code to demonstrate working of
# Trim tuples by K
# Using loop + slicing
# initializing list
test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1),
(9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 2
res = []
for ele in test_list:
N = len(ele)
# triming elements
res.append(tuple(list(ele)[K: N - K]))
# printing result
print("Converted Tuples : " + str(res))
Python3
# Python3 code to demonstrate working of
# Trim tuples by K
# Using list comprehension + slicing
# initializing list
test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1),
(9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 2
# one-liner approach to solve problem
res = [tuple(list(ele)[K: len(ele) - K]) for ele in test_list]
# printing result
print("Converted Tuples : " + str(res))
输出:
The original list is : [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
Converted Tuples : [(2,), (9,), (2,), (2,)]
方法#2:使用列表理解+切片
在此,我们以与上述方法类似的方式执行任务,不同之处在于使用列表理解以单行方式执行任务。
蟒蛇3
# Python3 code to demonstrate working of
# Trim tuples by K
# Using list comprehension + slicing
# initializing list
test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1),
(9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 2
# one-liner approach to solve problem
res = [tuple(list(ele)[K: len(ele) - K]) for ele in test_list]
# printing result
print("Converted Tuples : " + str(res))
输出:
The original list is : [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
Converted Tuples : [(2,), (9,), (2,), (2,)]