Python|连接字符串列表中的 N 个连续元素
有时,在处理数据时,我们可能会遇到一个问题,即我们需要在字符串列表中执行 N 个连续字符串的连接。这可以有许多跨域的应用程序。让我们讨论可以执行此任务的某些方式。
方法 #1:使用format() + zip() + iter()
+ 列表理解
上述方法的组合可用于执行此特定任务。在此我们使用 zip() 和 iter() 执行分组任务,format() 用于指定分组分隔符。
# Python3 code to demonstrate working of
# Consecutive N concatenation in String list
# using format() + zip() + iter() + list comprehension
# initialize list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
# printing original list
print("The original list : " + str(test_list))
# initialize N
N = 3
# Consecutive N concatenation in String list
# using format() + zip() + iter() + list comprehension
temp = '{} ' * N
res = [temp.format(*ele) for ele in zip(*[iter(test_list)] * N)]
# printing result
print("List after N concatenation of String : " + str(res))
输出 :
The original list : ['gfg', 'is', 'good', 'for', 'geek', 'people']
List after N concatenation of String : ['gfg is good ', 'for geek people ']
方法#2:使用starmap() + zip() + iter() + format()
上述功能的组合执行类似的任务。唯一的区别是使用 starmap() 而不是列表推导来构建列表。
# Python3 code to demonstrate working of
# Consecutive N concatenation in String list
# using starmap() + zip() + iter() + format()
from itertools import starmap
# initialize list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
# printing original list
print("The original list : " + str(test_list))
# initialize N
N = 3
# Consecutive N concatenation in String list
# using starmap() + zip() + iter() + format()
temp = '{} ' * N
res = list(starmap(temp.format, zip(*[iter(test_list)] * N)))
# printing result
print("List after N concatenation of String : " + str(res))
输出 :
The original list : ['gfg', 'is', 'good', 'for', 'geek', 'people']
List after N concatenation of String : ['gfg is good ', 'for geek people ']