【问题标题】:Trying to convert a list of tuples to a list of lists尝试将元组列表转换为列表列表
【发布时间】:2012-07-03 14:23:17
【问题描述】:

所以我正在读取一个包含两列的 CSV 文件,然后获取所有列的乘积。

我要做的是将他的产品从元组列表转换为列表列表。我最终想用逗号将每个元组组合成一个字符串。这是我的代码:

rowa = []
rowb = []

for row in csvfile:
    if row[0] != "":
        rowa.append(row[0])
    if row[1] != "":
        rowb.append(row[1])
wordlist = list(product(rowa, rowb))

我的伪代码是这样的:

for x in wordlist:
    x = list(x)
    x.join(" ")

print wordlist 应该会调出一个字符串列表,这将是旧的元组,变成一个列表,然后用空格连接在一起

【问题讨论】:

    标签: python string list tuples


    【解决方案1】:

    join method 正好相反;在空格字符串上调用它:

    for x in wordlist:
        " ".join(x)
    

    它适用于任何序列,因此这里不需要将元组转换为列表。

    请注意,您可以为您的列省去!= "" 测试;空字符串也被认为是布尔值 False:

    for row in csvfile:
        if row[0]:
            rowa.append(row[0])
        if row[1]:
            rowb.append(row[1])
    

    最后,因为您已经在迭代单词列表,所以只需将其保留为生成器并完全省去列表调用。

    wordlist = [" ".join(x) for x in product(rowa, rowb)]
    

    【讨论】:

      【解决方案2】:

      无需创建中间列表

      rowa = []
      rowb = []
      
      for row in csvfile:
          row0,row1 = row[0].lower(),row1.lower()
          if row0 != row1:
              if row[0] != "":
                   rowa.append(row0)
              if row[1] != "":
                   rowb.append(row1)
      wordlist = product(rowa, rowb)
      
      result = [" ".join(x) for x in wordlist]
      

      生成器表达式应该可以完成这项工作

      编辑 附加要求

      【讨论】:

      • 另外,将所有这些值变为小写的好方法是什么?我尝试了 row[0].lower 但它似乎以某种方式将其转换为字符串方法,而不是使所有内容都小写。
      • 令人惊讶的rowa.append(row[0].lower()) 应该可以完成这项工作
      • 我需要在那之前做,因为我添加了另一个条件,如果 row[0] != row[1]: 并且我希望一切都是事先相同的情况。
      • 如果你希望所有的字符串都是小写的,你也应该这样做rowb.append(row[1].lower()
      • 好的,但是我需要比较字符串,它们必须是小写的,所有的,在比较之前,否则我会有重复(即,Wordpress wordpress,然后会变成 wordpress wordpress,但它们仍然是重复的)
      【解决方案3】:

      几乎猜到了你的意思,但你是要压缩两个列表吗?

      wordlist = zip(rowa, rowb)
      

      【讨论】:

        猜你喜欢
        • 2018-12-19
        • 2012-06-05
        • 1970-01-01
        • 2022-09-27
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        相关资源
        最近更新 更多