Python 转换每个条目';(,)&x27;不带字符串的列表

Python 转换每个条目';(,)&x27;不带字符串的列表,python,type-conversion,Python,Type Conversion,如果在python中有一个列表,让我们说: 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)] list1=['(18430)'(19430)'(19429)'(19428)'(19427)'(18

如果在python中有一个列表,让我们说:

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)]
list1=['(18430)'(19430)'(19429)'(19428)'(19427)'(18426)',
'(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\u list
,例如
(18430)
,是否被视为元组?

首先,str到元组的转换只会生成一个包含所有字符串字符的新元组,因此无法进行显式转换,或者需要创建一个函数将字符串转换为元组,或者从中分割括号,将其转换为一个数字,然后用该数字创建一个元组,然后创建一个新列表并插入新创建的元组。

我几小时前刚刚处理过这个问题。下面是如何做到这一点

假设:列表1中的所有项都是存储为字符串的整数元组

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)]

对于您的示例,一种简单的方法是使用内置函数:

new_list = [eval(item) for item in list1]
如果字符串更复杂,最好从模块中使用:


是的,
new\u list
的每个元素都是一个元组。

我建议先尝试答案,然后发布代码,然后寻求帮助。我看了你的两个问题。这两个问题都没有你想要解决的。当您继续使用堆栈溢出时,请计划提供您的代码以及问题。