如何使用 python 列表理解更改列表列表中的第 n 个元素?
How to change n-th element in list of lists with python list comprehensions?
我有一个这样的子列表列表:
posts = [[1, 'text1', 0], [1, 'text2', 0]]
和函数change_text(text)
如何将此功能仅应用于每个子列表的文本元素?
我试过这个:
posts = [change_text(post[1]) for post in posts]
但我只有短信 ['changed_text1', 'changed_text2']
你可以在列表理解中有一个列表
>>> change_text = lambda x:'changed_'+x
>>> posts = [[1, 'text1', 0], [1, 'text2', 0]]
>>> [[post[0],change_text(post[1]),post[2]] for post in posts]
[[1, 'changed_text1', 0], [1, 'changed_text2', 0]]
一种方法可能是
[[post[0], change_text(post[1]), post[2]] for post in posts]
您可以直接对第二个元素本身进行编辑,而无需创建另一个新列表。
>>> change_text = lambda x:'changed_'+x
>>> posts = [[1, 'text1', 0], [1, 'text2', 0]]
>>> for m in posts:
m[1] = change_text(m[1])
>>> posts
[[1, 'changed_text1', 0], [1, 'changed_text2', 0]]
我有一个这样的子列表列表:
posts = [[1, 'text1', 0], [1, 'text2', 0]]
和函数change_text(text)
如何将此功能仅应用于每个子列表的文本元素?
我试过这个:
posts = [change_text(post[1]) for post in posts]
但我只有短信 ['changed_text1', 'changed_text2']
你可以在列表理解中有一个列表
>>> change_text = lambda x:'changed_'+x
>>> posts = [[1, 'text1', 0], [1, 'text2', 0]]
>>> [[post[0],change_text(post[1]),post[2]] for post in posts]
[[1, 'changed_text1', 0], [1, 'changed_text2', 0]]
一种方法可能是
[[post[0], change_text(post[1]), post[2]] for post in posts]
您可以直接对第二个元素本身进行编辑,而无需创建另一个新列表。
>>> change_text = lambda x:'changed_'+x
>>> posts = [[1, 'text1', 0], [1, 'text2', 0]]
>>> for m in posts:
m[1] = change_text(m[1])
>>> posts
[[1, 'changed_text1', 0], [1, 'changed_text2', 0]]