【问题标题】:Joining values of a list inside another list into a string将另一个列表中的列表的值连接到字符串中
【发布时间】:2021-12-26 08:45:43
【问题描述】:

我试图将字母作为字符串加入列表中,该字符串也在列表中。例如,它看起来像这样 [['a', 'b', 'c'], ['d', 'e', 'f']] 但是我希望结果看起来像 'ad be cf'这基本上是采用位于列表中相同位置的元素。我知道如何将元素加入到一个看起来像“abcdef”的列表中,但是,我不知道我可以添加哪个来返回一个看起来像上面的字符串。 任何建议将不胜感激!

string = ''
new_grid = []

for a in grid:
    for b in a:
        string += b
return string

【问题讨论】:

    标签: python for-loop while-loop


    【解决方案1】:

    当您想将列表转置为列时,您通常会使用zip()。例如:

    l = [['a', 'b', 'c'], ['d', 'e', 'f']]
    
    # make a list of columns
    substrings = ["".join(sub) for sub in zip(*l)]
    #['ad', 'be', 'cf']
    
    print(" ".join(substrings)) 
    # alternatively print(*substrings, sep=" ")
    # ad be cf
    

    【讨论】:

      【解决方案2】:

      这行得通:

      my_list = [['a', 'b', 'c'], ['d', 'e', 'f']]
      sorted_list = [list(pair) for pair in zip(my_list[0], my_list[1])]
      
      for i in range(3):
          string = ''.join(sorted_list[i])
          print(string, end=" ")
      
      

      首先,我们使用[zip][1] 将每个单独的列表与其对应的值配对,然后将其连接成一个字符串,并打印出来。

      此解决方案可能不是最有效的,但很容易理解。

      没有zip 的另一个快速解决方案可能如下所示:

      my_list = [['a', 'b', 'c'], ['d', 'e', 'f']]
      sorted_list = list(map(lambda a, b: a + b, my_list[0], my_list[1]))
      print(" ".join(sorted_list)) 
      

      【讨论】:

      • 非常感谢!但是除了使用 zip 功能还有其他方法吗?
      • 看看我更新的答案!
      • 你为什么不想使用zip
      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2023-03-06
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多