如何从元组列表中删除()和逗号

时间:2017-03-13 18:05:02

标签: python-3.x

最近我开发了一个程序,它接受一个数字列表,并找出可以被3整除的最大数字。 它工作但我不明白你如何将其更改为正常列表。这是一个例子:我有

[(3, 3, 4), (3, 4, 3), (3, 3, 4)]

我想

[334,343,334]

感谢您的帮助

继大帮助后,我收到一个与元组有关的异常错误再一次感谢这里的帮助;

import intercools 
list1 = []
stuff = [1, 2, 3]
for L in range(0, len(stuff+1):
    for subset in itertools.combinations(stuff, L):
         list1.append(subset) 
print(list1) 
sep = [map(str,l)for l in list1]
nl = [int(''.join(s)) for s in sep]
print(nl)

4 个答案:

答案 0 :(得分:1)

而另一个:

ml = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 

sep = [map(str,l) for l in ml]

nl = [int(''.join(s)) for s in sep]

print(nl) # [334, 343, 334]

答案 1 :(得分:1)

假设:

>>> LoT=[(3, 3, 4), (3, 4, 3), (3, 3, 4)]

您可以使用字符串将元组元素连接在一起,然后重新转换为int:

>>> [int(''.join(map(str, t))) for t in LoT]
[334, 343, 334]

答案 2 :(得分:0)

您可以使用literal_eval模块中的ast这样做:

from ast import literal_eval 

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)]
b = [literal_eval("".join(str(j) for j in k)) for k in a]
print(b)

输出:

[334, 343, 334]

你也可以这样做:

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)]
b = [int("".join(str(j) for j in k)) for k in a]

此外,您可以使用map方法执行此操作:

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)]
# Or using literal_eval
b = [int("".join(map(str, k))) for k in a]

答案 3 :(得分:0)

Python中的列表理解是你的朋友。

t = [(3, 3, 4), (3, 4, 3), (3, 3, 4)]
str_tuple = [(str(x), str(y), str(y)) for (x, y, z) in t]
final = [int(''.join(x)) for x in str_tuple]
# [334, 343, 334]