Python 使用列表中的多个字符进行分割

发布于 2025-01-11 07:55:44 字数 332 浏览 0 评论 0原文

原始列表:

['ValueA : 123', 'Source: 10.01, Port: 101, Destination: 10.10', 'ValueB: 4,5,6']

我想拆分具有多个“:”的值,结果应如下所示:

['ValueA : 123', 'Source: 10.01', 'Port: 101', 'Destination: 10.10', 'ValueB: 4,5,6']

注意:这并不总是第二个字符串。这可能位于列表中的任何位置。基本上是希望拆分列表中的一个值,其中源、帖子和目的地位于同一列表值中。

Original List :

['ValueA : 123', 'Source: 10.01, Port: 101, Destination: 10.10', 'ValueB: 4,5,6']

I want to split the value which has multiple ":" and the results should look something like below:

['ValueA : 123', 'Source: 10.01', 'Port: 101', 'Destination: 10.10', 'ValueB: 4,5,6']

Note: This will not always be the second string. This could be anywhere in the list. Basically looking to split a value in the list which has Source, Post and Destination in the same list value.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎盛开的樱花 2025-01-18 07:55:44

您可以尝试拆分列表中的每个元素,然后使用 sum() 添加它们来合并这些列表:

>>> L = ['ValueA : 123', 'Destination: 10.01, Port: 101, Destination: 10.10', 'ValueB: 456']
>>> L = sum(
    (
        # Split only if condition is met
        element.split(", ") if all(word in element for word in ["Source", "Port", "Destination"]) else [element]
        for element in L
    ),
    start=[],
)
>>> L

请注意 sum(..., start=[]) 中使用的关键字参数。默认情况下,sum()start=0 开头,因为它通常用于添加数值。在本例中,我们使用 sum() 来添加列表,但 0+[] 会引发异常。这就是为什么我们必须将起始值更改为一个列表,一个空列表。

You could try to split every element in your list, and merge those lists by adding them using sum():

>>> L = ['ValueA : 123', 'Destination: 10.01, Port: 101, Destination: 10.10', 'ValueB: 456']
>>> L = sum(
    (
        # Split only if condition is met
        element.split(", ") if all(word in element for word in ["Source", "Port", "Destination"]) else [element]
        for element in L
    ),
    start=[],
)
>>> L

Notice the keyword argument used in sum(..., start=[]). By default, sum() starts with start=0 because it's commonly used to add numerical values. In this case, we're using sum() to add lists, but 0+[] would raise an exception. This is why we must change the start value to a list, an empty list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文