Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如何编辑列表列中所有行的文本_Python_Python 3.x_List - Fatal编程技术网

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'], ['

我将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'], 
['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。