Python – 在元组列表中填充大小为 K 的字符串
有时在使用元组列表时,我们可能会遇到一个问题,即我们需要执行字符串填充以完成列表中的特定大小。这种类型的询问可能发生在数据域和数据预处理中。让我们讨论可以执行此任务的某些方式。
Input : test_list = [(‘Gfg’, ‘is’), (‘best’, ‘for’), (‘CS’, ‘Geeks’)], K = 6, fill_char = ‘#’
Output : [(‘Gfg###’, ‘is####’), (‘best##’, ‘for###’), (‘CS####’, ‘Geeks#’)]
Input : test_list = [(‘Gfg’, ‘is’), (‘best’, ‘for’), (‘CS’, ‘Geeks’)], K = 5, fill_char = ‘!’
Output : [(‘Gfg!!’, ‘is!!!’), (‘best!’, ‘for!!’), (‘CS!!!’, ‘Geeks’)]
方法 #1:使用列表理解 + len()
此功能是可用于解决此问题的蛮力方法的简写。在此,我们使用 len() 执行检查 K 大小的任务,并按字符执行所需的填充。
# Python3 code to demonstrate working of
# Fill Strings for size K in Tuple List
# Using list comprehension + len()
# initializing list
test_list = [('Gfg', 'is'), ('best', 'for'), ('CS', 'Geeks')]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 8
# initializing fill_char
fill_char = '*'
# Fill Strings for size K in Tuple List
# Using list comprehension + len()
res = [(a + fill_char * (K - len(a)), b + fill_char * (K - len(b))) for a, b in test_list]
# printing result
print("The modified list : " + str(res))
输出 :
The original list is : [('Gfg', 'is'), ('best', 'for'), ('CS', 'Geeks')]
The modified list : [('Gfg*****', 'is******'), ('best****', 'for*****'), ('CS******', 'Geeks***')]
方法 #2:使用列表理解 + ljust()
上述功能的组合可以用来解决这个问题。在此,我们使用 ljust() 执行填充尾随字符的任务。
# Python3 code to demonstrate working of
# Fill Strings for size K in Tuple List
# Using list comprehension + ljust()
# initializing list
test_list = [('Gfg', 'is'), ('best', 'for'), ('CS', 'Geeks')]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 8
# initializing fill_char
fill_char = '*'
# Fill Strings for size K in Tuple List
# Using list comprehension + ljust()
res = [(a.ljust(K, fill_char), b.ljust(K, fill_char)) for a, b in test_list]
# printing result
print("The modified list : " + str(res))
输出 :
The original list is : [('Gfg', 'is'), ('best', 'for'), ('CS', 'Geeks')]
The modified list : [('Gfg*****', 'is******'), ('best****', 'for*****'), ('CS******', 'Geeks***')]