关于python:将列表中每个元组的内容转换为字符串,不带括号或逗号

Converting the content of each tuplet of a list to a string, without the parenthesis or the commas

我需要对请求的输入进行排列,这样我就有了这个代码

1
2
3
4
5
6
7
8
9
#!/usr/bin/python
import itertools

variable1 = raw_input("input 4-6 carac")
var1list = list(variable1)
lenlist = len(var1list)
itertools.permutations(variable1)
iterlist = list(itertools.permutations(variable1, lenlist))
print iterlist

所以我最后得到了一个元组列表所以对于123我得到(1,2,3),(1,3,2)问题是,我需要将每个元组都附加一个字符串,所以我不能将元组附加到字符串。我需要将列表中的每个元组转换为一个字符串,但不带()或逗号。

例如,从包含123排列的列表中:

(1,2,3),(1,3,2)...

我需要得到一个列表,其中包含每个元组的每个成员,并将其与列表中其他元组的成员分开:我在澄清我只想要这个:

[123, 132...] or ['123', '132'...]

这两个是我在已经回复的帖子上找到的类似例子,只是为了澄清我想要的东西与他们不同。

元组的文本字符串

"(1,2,3), (1,3,2)..."

就像在这篇文章里

或者将所有元组一起格式化为一个列表的列表

[1,2,3,1,3,2...]

就像在另一个帖子里一样

有什么建议吗?我有点控制python,但我对tuplet如何工作一无所知。

编辑:我认为列表应该是字符串(而不是整数)


对于需要这种输出样式的情况:

[123, 132...]

请尝试以下操作:

1
2
b = [''.join(map(str,i)) for i in a]
# ['123', '132']

其中,a是您的排列列表。它以字符串形式删除元组,并创建结果列表。

对于希望输出采用此样式的情况:

[1,2,3,1,3,2...]

1
2
3
4
import numpy as np
b = np.array(a)
b = map(str, b.reshape(-1).tolist())
# ['1', '2', '3', '1', '3', '2']

这将使用numpy数组函数来很好地平展您的条目。


可以使用字符串join从元组中使用适当的分隔符构建字符串:

1
2
3
4
perms = [(1,2,3), (1,3,2)]
string_perms = [''.join([str(i) for i in t]) for t in perms]
print(string_perms)
# ['123', '132']


1
2
3
4
5
a = [(1,2,3),(1,3,2)]
b = [''.join(map(str, s)) for s in a]

print (b)
# ['123', '132']