【问题标题】:pythonically editing a list of tupples of strings [duplicate]以python方式编辑字符串元组列表[重复]
【发布时间】:2020-11-16 16:53:11
【问题描述】:

mysql 输出了一个元组列表

a=[("1","2","3"),("4","5","6"),("7","8","9")]

我想要一个表格的元组列表

c=[("2","3"),("5","6"),("8","9")]

即每个元组的最后两个元素,所以我可以把它放到我的 sql executemany 命令中并获取下一条数据。

我的直觉是我可以用命令得到想要的矩阵

c=[for b in a: b[1:]]

但是python,不喜欢那样。为什么这不起作用,获取所需元组列表的最 Pythonic 方式是什么?

【问题讨论】:

    标签: python list


    【解决方案1】:

    您的语法稍有错误,但采用了正确的方法。

    c = [b[1:] for b in a]
    

    【讨论】:

      【解决方案2】:

      您需要对a 中的每个item 进行切片:

      >>> a = [("1","2","3"),("4","5","6"),("7","8","9")]
      >>> [i[1:] for i in a]
      [('2', '3'), ('5', '6'), ('8', '9')]
      

      【讨论】:

        【解决方案3】:

        你可以这样遍历,这里的for循环会结束:

        a=[(1,2,3),(4,5,6),(7,8,9)]
        c=[b[1:] for b in a]
        print(c)
        

        【讨论】:

          【解决方案4】:

          由于您需要每个元组的最后两个元素,因此当每个元组中的元素数不是 3 时,使用切片 [1:] (就像其他答案一样) 将不起作用.

          相反,使用带有[:-2] 的负片的列表推导:

          a = [("1","2","3"),("4","5","6"),("7","8","9")]
          a = [t[-2:] for t in a]
          print(a)
          

          输出:

          [('2', '3'), ('5', '6'), ('8', '9')]
          

          【讨论】:

            猜你喜欢
            • 2013-03-04
            • 2018-07-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-13
            • 2022-09-23
            • 2016-07-17
            相关资源
            最近更新 更多