【问题标题】:How to iterate over a list of lists and print items of each list as a comma-delimited string如何遍历列表列表并将每个列表的项目打印为逗号分隔的字符串
【发布时间】:2010-07-11 19:09:39
【问题描述】:

如果我有一个列表列表:

x = [['1','2','3'],['4','5','6'],['7','8','9']]

如何遍历这些列表并打印它们以获得以下输出?

1, 2, 3
4, 5, 6
7, 8, 9

【问题讨论】:

    标签: python list


    【解决方案1】:

    你可以使用itertools.chain:

    from itertools import chain
    
    for i in chain.from_iterable(x):
        print i
    

    【讨论】:

    • 我知道这个答案已有 8 年历史,但在我看来这是最好的方法,对我帮助很大!
    【解决方案2】:

    试试这个:

    for l in x:
        print ', '.join(map(str, l))
    

    输出:

    1、2、3 4、5、6 7、8、9

    【讨论】:

      【解决方案3】:

      你几乎拥有它:

      # python
      x = [['1','2','3'],['4','5','6'],['7','8','9']]
      
      for i in x:
        print i[0]
      1
      4
      7
      
      for i in x:
        print i
      ['1', '2', '3']
      ['4', '5', '6']
      ['7', '8', '9']
      
      for i in x[0]:
        print i
      1
      2
      3
      

      【讨论】:

      • erm 这不是我要找的。当我打印时,我希望打印每个列表,例如上面的代码将打印 1,4 和 7,但我希望打印 1,2,3
      • 第二个确实打印 [1,2,3]。如果你只想通过第一个,我会在几秒钟内添加。
      【解决方案4】:

      如果您正在讨论一个接一个地处理数组中的每个元素(我在这里假设打印只是一个示例,您实际所需的处理更复杂),最简单 方法是不要那样做。显然,您的数据以这种方式结构化是有原因的,在这种情况下,您的代码应该反映它。

      您只需使用一条for 语句就可以节省非常一点,所以我会使用:

      for xlist in x:
          for n in xlist:
              do something with n
      

      信不信由你,让您的代码镜像您的数据实际上可以提高代码的可读性。

      例如,要获得编辑中指定的确切输出:

      #!/usr/bin/python
      
      x = [['1','2','3'],['4','5','6'],['7','8','9']]
      
      for xlist in x:
          s = ""
          for n in xlist:
              s = "%s, %c"%(s,n)
          print s[2:]
      

      【讨论】:

      • +1 表示“信不信由你,让您的代码镜像您的数据实际上提高了代码的可读性。”
      【解决方案5】:

      就概念而言,实际遍历很简单:

      for i in x: #a list
          for j in i: #elements of the list
              print j
      

      这将打印 1 2 3 4 5 6 7 8 9,换行中的每个数字

      您可以根据需要更改模式。

      【讨论】:

        【解决方案6】:
        x = [['1','2','3'],['4','5','6'],['7','8','9']]
        
        [k for y in x for k in y]
        

        输出:

        ['1', '2', '3', '4', '5', '6', '7', '8', '9']
        

        【讨论】:

          猜你喜欢
          • 2018-05-08
          • 1970-01-01
          • 2011-11-30
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 2013-02-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多