【问题标题】:How can I convert a string into a list and then back to a string? [closed]如何将字符串转换为列表然后再转换回字符串? [关闭]
【发布时间】:2021-01-24 09:18:51
【问题描述】:

我只想知道如何在每个示例中转换一串数字:

numbers = "1,3,5,12,36,81"

在一个列表中,对所有数字求平方,然后将其打印为字符串。

提前致谢!

【问题讨论】:

  • print (*[int(i)**2 for i in numbers.split(',')]) 这是您要找的吗?
  • 是的。那也可以。

标签: python python-3.x string list


【解决方案1】:

假设你只有整数

",".join(map(str,[int(i)*int(i) for i in numbers.split(',')]))


   '1,9,25,144,1296,6561'

【讨论】:

    【解决方案2】:

    如果你想要一个字符串结尾:

    numbers = "1,3,5,12,36,81"
    results = ','.join( [ str(int(x)**2) for x in numbers.split(",")] )
    print (results)
    

    输出是:

    1,9,25,144,1296,6561
    

    如果可以的话,我建议将数字保留在一个列表中。

    【讨论】:

      【解决方案3】:

      要从string 变为list,您将其拆分,它有一个模式,这里是逗号。然后将所有内容与列表理解相匹配,然后加入他们一起前往string

      numbers = "1,3,5,12,36,81"
      values = numbers.split(',')                     # ['1', '3', '5', '12', '36', '81']
      values = [int(val) ** 2 for val in values]      # [1, 9, 25, 144, 1296, 6561]
      numbers = ",".join(str(val) for val in values)  # 1,9,25,144,1296,6561
      

      【讨论】:

        【解决方案4】:
        import math
        my_list = numbers.split(',')
        square_roots = ','.join([math.sqrt(int(x)) for x in my_list])
        print(square_roots)
        

        【讨论】:

        • 在每次迭代中创建一个 lambda 以直接应用它,如此违反直觉、不好的做法、效率低下
        • 你是对的,谢谢,已解决。
        • @HosseinHeydari OP 要求平方而不是平方根。
        • 社区encourages 在代码旁边添加解释,而不是纯粹基于代码的答案。正如here 所解释的那样:“虽然此代码可能会回答问题,但提供有关 为什么 和/或 如何 此代码回答问题的附加上下文会提高其长期价值。 "
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-01
        • 1970-01-01
        • 2019-10-16
        • 2012-01-08
        • 2011-05-18
        相关资源
        最近更新 更多