Python:通过向所有元素添加字符串来更新列表

时间:2018-07-31 19:05:14

标签: python python-2.7

Python 2.7,Windows 10

我有一个代码,该代码查找excel文件的所有工作表名称,然后放入然后拆分字符串并将其放入列表中。我的代码的下一步需要将文件路径附加到列表中的工作表名称中。文件路径将是一个常量变量。

我意识到此代码是错误的,但我基本上只需要能够执行以下操作:

List = ['test1', 'test2', 'test3']
for i in list
    print("file_Path" + i)   

'file_path test1'
'file_path test2'

但是我需要它来更新列表或追加到新列表而不是打印。什么是最好的方法来做到这一点。我一直很难找到一个好的答案,但是我意识到自己可能在错误的位置进行搜索。

谢谢!

6 个答案:

答案 0 :(得分:1)

正如评论部分中的人所建议的那样,您最好的选择是使用列表理解

['file_Path ' + i for i in List]

现在,我想添加一个答案,因为我想补充一点,List绝对不是为您list对象命名的好选择。

除了list关键字

,我还将提供更有意义的内容

(例如sheet_names

sheet_names = ['test1', 'test2', 'test3']
sheet_names = ['file_Path ' + i for i in sheet_names]
print(sheet_names)
>>>>['file_Path test1', 'file_Path test2', 'file_Path test3']

答案 1 :(得分:0)

我认为这将是更好的方法,因为我经常使用它

oldList = ['test1','test2','test3']
newList = list(map(lambda a:"file path "+a,oldList))

看起来很实用

答案 2 :(得分:0)

list = ['test1', 'test2', 'test3']
for i in range(len(list)):
    list[i] = 'file_path ' + list[i]

或使用列表理解:

list = ['test1', 'test2', 'test3']
new_list = ['file_path ' + item for item in list]

答案 3 :(得分:0)

您可以使用列表理解来执行此任务-

List = ['test1', 'test2', 'test3']
file_path = 'your/file/path'
newList = [file_path+SheetName for SheetName in List]

或者您可以使用map + lambda组合-

newList = list(map(lambda x: file_path+x , List))

答案 4 :(得分:0)

只需使用列表理解:

List = ['test1', 'test2', 'test3']
file_paths = ['file_path: %s' % (fp,) for fp in List]

答案 5 :(得分:0)

您可以尝试使用mapadd的组合,在元素上明智地添加两个列表。

from operator import add
test = ['test1', 'test2', 'test3']
path = ['file_Path '] * len(test)
list(map(add, path, test))

输出

['file_Path test1', 'file_Path test2', 'file_Path test3']