gpt4 book ai didi

python - "Flatten"列表中的一串单词

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:07 26 4
gpt4 key购买 nike

给定如下列表(我的实际列表比这个长,列表中至少有100个子列表):

[[135, "Apple Banana"], [136, "Peach Watermelon"], [137, "Orange Steak"]]

获得以下列表的“Pythonic 方式”是什么?

[[135, "Apple", "Banana"], [136, "Peach", "Watermelon"], [137, "Orange", "Steak"]]

我已经有一个使用 for-loop 的实现。

myList = [[135, "Apple Banana"], [136, "Peach Watermelon"], [137, "Orange Steak"]]

temp_container = []

for subList in myList:
temp_container = subList[1].split(" ")
subList[1] = temp_container[0]
subList.append(temp_container[1])

请问有没有更好的实现方式? (也许使用类似 [map(function, subList) for subList in myList] 的东西?)

最佳答案

您可以使用 list comprehension 来实现它, 解压子列表并使用 str.split()在每个子列表的第二项上:

In [1]: l = [[135, "Apple Banana"], [136, "Peach Watermelon"], [137, "Orange Steak"]]

In [2]: [[item0] + item1.split() for item0, item1 in l]
Out[2]:
[[135, 'Apple', 'Banana'],
[136, 'Peach', 'Watermelon'],
[137, 'Orange', 'Steak']]

或者,不拆包:

In [3]: [[item[0]] + item[1].split() for item in l]
Out[3]:
[[135, 'Apple', 'Banana'],
[136, 'Peach', 'Watermelon'],
[137, 'Orange', 'Steak']]

关于python - "Flatten"列表中的一串单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41910898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com