向嵌套列表的每个元素添加前缀和后缀

时间:2018-12-13 19:05:13

标签: python python-3.x list

假设我有一个列表(它是列表列表的集合),比如说列表定义为try_list:

  try_list = [['sun', 'Hello' 'star', 'cluster', 'douglas'], 
              ['age', 'estimate', 'scale', 'moon', 'hi'], 
              ['cosmos', 'mystery', 'system', 'graph']]

我想在列表的起点和终点向每个单词添加一个特殊字符_#

例如,try_list应该看起来像这样:

[['_sun_', '_Hello_', '_star_', '_cluster_', '_douglas_'],
 ['_age_', '_estimate_', '_scale_', '_moon_', '_hi_'],
 ['_cosmos_', '_mystery_', '_system_', '_graph_']]

我尝试的列表工作正常,如下所示。

try_list = ['sun', 'Hello' 'star', 'cluster', 'douglas', 'age',  'estimate', 'scale', 'moon', 'hi', 'cosmos', 'mystery', 'system', 'graph']
injected_tokens = []
temp = "_"
with open('try_try.txt', 'w', encoding='utf-8') as d2:
   for word in try_list:
       new_list.append(temp+word+temp)
   d2.write(injected_tokens)

上面的代码段对列表而不是list 效果很好。

如何在列表列表中实现相同的功能?

任何想法深表感谢!

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用列表理解:

[[f'_{x}_' for x in i] for i in try_list]

[['_sun_', '_Hello_', '_star_', '_cluster_', '_douglas_'],
 ['_age_', '_estimate_', '_scale_', '_moon_', '_hi_'],
 ['_cosmos_', '_mystery_', '_system_', '_graph_']]

或使用map

[list(map(lambda x: f'_{x}_', i)) for i in try_list]