如何分割Python中2D数组内的字符串?
问题描述:
我对Python很新,我有一个任务,我必须从文本文件中导入一些地址,然后搜索并缩写道路标题(即将'道路'更改为'RD')。如何分割Python中2D数组内的字符串?
到目前为止,我已经设法导入文件,并且我已经能够形成一个二维数组,其中整个地址位于主数组内的一个单独数组中。我一直在寻找一种方法进入数组内部,这样我就可以拆分它们的字符串,这样我就可以执行缩写,然后在Excel中自己的行上输出每个子数组。
这是我的代码的时刻:
def sec_2():
addresses = []
with open('Addresses2.txt', newline='') as Addresses2:
for row in csv.reader(Addresses2):
addresses.append(row)
print(addresses)
代码输出,这至今:
['52科林斯路 ' '第一楼'],['20英格拉姆街' ,'Forest Hills','纽约'],[Westbourne Terrace Road','Buxton'],['The Terrace Restaurant','81 Royal Street','Solihull']]
我需要它成为:
[[''52','Corinthian', 'Road','First','Floor']],[['20','Ingram','Street','Forest','Hills','New','York']等等...
答
您可以使用itertools:
import csv
import itertools
data = csv.reader(open('filename.csv'))
final_data = [list(itertools.chain.from_iterable([b.split() for b in i])) for i in data]
答
您应该为列表中的每个字符串使用str.split函数。
split_strings = []
for string in string_list:
split_strings.append(string.split(' '))
也许使用'addresses.append(row.split())',而不是试图在事后的行拆分。 –
'[[''52','科林斯','道路','第一','地板']]'这是你的要求还是错字?似乎没有达到任何目的。或者你的意思是说'[''52','科林斯','道路','第一','地板'],['20','英格拉姆','街道','森林' ,'新','约克']]' – Anusha
这是一个错字,抱歉。另外,我尝试了'addresses.append(row.split())',它不起作用。 – Anabelle