最近我开发了一个程序,它接受一个数字列表,并找出可以被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)
答案 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]