在Python中从列表中并排加入单词

Hel*_*rth 4 python string list dataframe python-3.x

有一堆从.txt文件转换而来的列表,这些列表已被读作字符串集合,如下所示:

['New', 'Jersey', '1', '0', '1', '999']
['West', 'North', 'Central', '1', '0', '100', '90']
Run Code Online (Sandbox Code Playgroud)

这些列表有不同数量的并排词(第一个有2个,第二个有3个,等等.)

我想输出一个新的列表(然后进入一个编译的数据帧),它将并排的单词连接在一起,如:

['New Jersey', '1', '0', '1', '999']
['West North Central', '1', '0', '100', '90']
Run Code Online (Sandbox Code Playgroud)

这将使新列表(和数据帧)具有相同的长度.

只是append(line.split())为每个字符串添加一个新列表很容易,但无法找出if-statement和.join()连接所有单词并分别附加每个数字.

jpp*_*jpp 6

使用itertools.groupby,您可以分组str.isalpha,有条件地连接字符串,然后链接结果:

from itertools import chain, groupby

L = ['New', 'Jersey', '1', '0', '1', '999']

grouper = groupby(L, key=str.isalpha)
joins = [[' '.join(v)] if alpha_flag else list(v) for alpha_flag, v in grouper]
res = list(chain.from_iterable(joins))

print(res)

['New Jersey', '1', '0', '1', '999']
Run Code Online (Sandbox Code Playgroud)

  • @blhsing`'kids'>'SO'`幸运地是'真';) (2认同)