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

Mis*_*a S -1 python list python-3.x

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

  try_list = [['sun', 'Hello' 'star', 'cluster', 'douglas'], 
              ['age', 'estimate', 'scale', 'moon', 'hi'], 
              ['cosmos', 'mystery', 'system', 'graph']]
Run Code Online (Sandbox Code Playgroud)

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

例如,try_list应如下所示:

[['_sun_', '_Hello_', '_star_', '_cluster_', '_douglas_'],
 ['_age_', '_estimate_', '_scale_', '_moon_', '_hi_'],
 ['_cosmos_', '_mystery_', '_system_', '_graph_']]
Run Code Online (Sandbox Code Playgroud)

我所尝试的是为列表顺利工作,如下所示.

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)
Run Code Online (Sandbox Code Playgroud)

上面的代码片段适用于列表而不是列表列表

如何在列表列表中实现相同的目标?

任何想法都深深感激!

谢谢!

yat*_*atu 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_']]
Run Code Online (Sandbox Code Playgroud)

或使用map:

[list(map(lambda x: f'_{x}_', i)) for i in try_list]
Run Code Online (Sandbox Code Playgroud)