【问题标题】:Convert each entry '(,)' list to without string [duplicate]将每个条目“(,)”列表转换为没有字符串[重复]
【发布时间】:2021-12-30 17:59:38
【问题描述】:

如果你在 python 中有一个列表,可以说:

list1 = ['(18,430)', '(19,430)', '(19,429)', '(19,428)', '(19,427)', '(18,426)',
         '(17,426)', '(17,425)', '(17,424)', '(17,423)', '(17,422)', '(17,421)',
         '(17,420)', '(17,421)']

并且您想转换列表中的每个元素而不使用字符串并创建一个新列表让我们说:

new_list = [(18,430), (19,430), (19,429), (19,428), (19,427), (18,426),
            (17,426), (17,425), (17,424), (17,423), (17,422), (17,421),
            (17,420), (17,421)]

你会如何在 python 中做到这一点?中的每个单独的值也会 new_list,比如(18,430),算不算元组?

【问题讨论】:

  • 我建议先尝试答案,然后发布代码,然后寻求帮助。我看了你的两个问题。他们两个都没有你的尝试去解决。在您继续使用 Stack Overflow 时,请计划提供您的代码以及问题。

标签: python type-conversion


【解决方案1】:

为您的示例执行此操作的一种简单方法是使用内置 eval 函数:

new_list = [eval(item) for item in list1]

如果字符串更复杂,最好使用ast 模块中的literal_eval

from ast import literal_eval

new_list = [literal_eval(item) for item in list1]

是的,new_list 的每个元素都是一个元组。

【讨论】:

    【解决方案2】:

    首先,str到元组的转换只会生成一个新的元组,上面有所有的字符串字符,所以你不能进行显式转换,要么你需要创建一个函数来从字符串转换为元组,或从中切出括号,将其转换为数字,然后使用该数字创建一个元组,然后创建一个新列表并插入新创建的元组。

    【讨论】:

      【解决方案3】:

      我几个小时前才处理过这个问题。以下是如何执行此操作。

      假设:list1 中的所有项目都是以字符串形式存储的整数元组。

      list1 = ['(18,430)', '(19,430)', '(19,429)',
               '(19,428)', '(19,427)', '(18,426)',
               '(17,426)', '(17,425)', '(17,424)',
               '(17,423)', '(17,422)', '(17,421)',
               '(17,420)', '(17,421)' ]
      
      list2 = [tuple(map(int,(i.replace(')','').replace('(','')).split(','))) for i in list1]
      print (list2)
      

      这个输出将是:

      [(18, 430), (19, 430), (19, 429), 
       (19, 428), (19, 427), (18, 426), 
       (17, 426), (17, 425), (17, 424), 
       (17, 423), (17, 422), (17, 421), 
       (17, 420), (17, 421)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-05
        • 2020-08-07
        • 2011-05-27
        • 2011-02-23
        • 2017-06-28
        • 1970-01-01
        • 2020-07-30
        • 2018-01-27
        相关资源
        最近更新 更多