【问题标题】:split a string in python on linebreaks [duplicate]在换行符上拆分python中的字符串[重复]
【发布时间】:2013-08-30 19:02:00
【问题描述】:

我有一个包含一系列时间和活动的元组。所以,它会类似于这样:

('08:01: Woke Up\n08:05: Took Shower\n08:20: Ate Breakfast\n08:45: Left for work', )

我需要能够像这样进行每个活动并单独显示:

8:01 Woke Up
8:05 Took Shower
8:20 Ate Breakfast
8:45 Left for work

谁能给我一个关于在 python 中最好/最简单的方法的建议?谢谢。

【问题讨论】:

    标签: python split


    【解决方案1】:

    您已经在元素中有换行符,所以只需打印:

    >>> tup = ('08:01: Woke Up\n08:05: Took Shower\n08:20: Ate Breakfast\n08:45: Left for work',)
    >>> print tup[0]
    08:01: Woke Up
    08:05: Took Shower
    08:20: Ate Breakfast
    08:45: Left for work
    

    您可以使用str.splitlines() 将字符串拆分为单独的元素:

    >>> tup[0].splitlines()
    ['08:01: Woke Up', '08:05: Took Shower', '08:20: Ate Breakfast', '08:45: Left for work']
    >>> for line in tup[0].splitlines():
    ...     print line
    ... 
    08:01: Woke Up
    08:05: Took Shower
    08:20: Ate Breakfast
    08:45: Left for work
    

    如果您需要将时间和活动作为单独的字符串,请拆分字符串': ' 上的每一行:

    >>> for line in tup[0].splitlines():
    ...     time, activity = line.split(': ', 1)
    ...     print time, activity
    ... 
    08:01 Woke Up
    08:05 Took Shower
    08:20 Ate Breakfast
    08:45 Left for work
    

    【讨论】:

    • 很好的答案。如果你想把每一行分成一个时间和一个活动,你可以做line.split(None, 1)或line.partition(' ')。
    • @abarnert:实际上是在': ' 上拆分;现在我的输出与问题样本匹配。
    • 非常详细和准确的答案。谢谢,也感谢其他回复。
    • @MartijnPieters:是的,这行得通,但我不确定它是否更具可读性;您必须考虑第一个冒号不算数的事实,因为它后面没有空格……
    【解决方案2】:

    你有没有想过字典?您可以将时间信息存储为键,将活动存储为值,如下所示:

    dictionary = {}
    dictionary['8:01'] = 'Woke Up'
    dictionary['8:05'] = 'Took Shower'
    dictionary['8:20'] = 'Ate Breakfast'
    dictionary['8:45'] = 'Left for work'
    

    然后以您可以简单的格式打印:

    for k in dictionary:
        print k + ' ' + dictionary[k]
    

    【讨论】:

      【解决方案3】:

      你似乎没有一个元组,你有一个字符串,如果你打印,它会准确地给你你想要的。

      假设您有一个元组列表(我假设这就是您的意思),您应该这样做:

      input = [("8:01", "Woke Up"), ("8:05", "Took shower"), ("8:20", "Ate Breakfast")]
      for time, description in input:
        print time, description
      

      【讨论】:

        【解决方案4】:
        >>> t = ('08:01: Woke Up\n08:05: Took Shower\n08:20: Ate Breakfast\n08:45: Left for work', )
        >>> for elem in t:
        ...     print elem.split('\n')
        ...
        ['08:01: Woke Up', '08:05: Took Shower', '08:20: Ate Breakfast', '08:45: Left fo
        r work']
        >>> for elem in t:
        ...     for activity in elem.split('\n'):
        ...             print activity
        ...
        08:01: Woke Up
        08:05: Took Shower
        08:20: Ate Breakfast
        08:45: Left for work
        >>> for elem in t:
        ...     print elem
        ...
        08:01: Woke Up
        08:05: Took Shower
        08:20: Ate Breakfast
        08:45: Left for work
        

        【讨论】:

          猜你喜欢
          • 2016-03-22
          • 1970-01-01
          • 2014-08-05
          • 2018-01-24
          • 2013-10-18
          • 2011-12-28
          • 1970-01-01
          相关资源
          最近更新 更多