Python如何编辑列表列中所有行的文本
我将excel文件读取为python中的列表,如下所示Python如何编辑列表列中所有行的文本,python,python-3.x,list,Python,Python 3.x,List,我将excel文件读取为python中的列表,如下所示 print(results) [['H1', 'H2', 'H3'], ['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3']] H1、H2、H3是excel文件的头。我想将第2列中的数据更改为这样 [['H1', 'H2', 'H3'], ['a1', 'b1@gmail.com', 'c1'], ['a2', 'b2@gmail.com', 'c2'], ['
print(results)
[['H1', 'H2', 'H3'],
['a1', 'b1', 'c1'],
['a2', 'b2', 'c2'],
['a3', 'b3', 'c3']]
H1、H2、H3是excel文件的头。我想将第2列中的数据更改为这样
[['H1', 'H2', 'H3'],
['a1', 'b1@gmail.com', 'c1'],
['a2', 'b2@gmail.com', 'c2'],
['a3', 'b3@gmail.com', 'c3']]
如何修复它?试试这个:
res = [['H1', 'H2', 'H3'],
['a1', 'b1', 'c1'],
['a2', 'b2', 'c2'],
['a3', 'b3', 'c3']]
for i in range(1, len(res)):
res[i][1] = res[i][1] + '@gmail.com'
print(res)
输出:
[['H1', 'H2', 'H3'],
['a1', 'b1@gmail.com', 'c1'],
['a2', 'b2@gmail.com', 'c2'],
['a3', 'b3@gmail.com', 'c3']]
我将使用一个表格工具,如
pandas
#pip安装程序
作为pd进口熊猫
数据=['H1','H2','H3'],
['a1','b1','c1'],
['a2','b2','c2'],
['a3','b3','c3']
#将数据读取到数据帧
df=pd.DataFrame(数据[1:])
df.columns=数据[0]
#在H2中添加gmail
df['H2']=df['H2'].add('@gmail.com')
#打印前五行
打印(df.head())
#将其保存到csv
df.to_csv('my_csv.csv',index=False)
对于循环和
csv
库,我会使用pandas
而不是的原因是速度、简单性和易用性。读取、修改和存储数据变得易于写入和管理。如果您想在修改列表后将列表保存到csv文件中,请使用:
import csv
with open("output.csv", "w") as f:
writer = csv.writer(f)
for i, row in enumerate(results):
if i == 0:
writer.writerow(row)
else:
writer.writerow(row[:1] + [row[1] + "@gmail.com"] + row[2:])
执行上述代码后,csv
文件的内容如下所示:
H1,H2,H3
a1,b1@gmail.com,c1
a2,b2@gmail.com,c2
a3,b3@gmail.com,c3
如果它只是一个列表,您可以迭代并更改第二列中的值
像这样:
for l in result:
l[1] += "@gmail.com"
您想要更改列表还是文件I wat来更改列表。我可以在更改列表后导出到csv。