我需要对输入的内容进行排列,所以我有这段代码
#!/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)... 然后的问题是我需要向每个连音符追加一个字符串,因此我无法将tupplet附加到字符串。我需要将列表中的每个连音符转换为字符串,但不包含()或逗号。
例如,从包含123排列的列表中:
(1,2,3),(1,3,2)...
我需要得到一个列表,其中包含每个连音符的每个成员在一起,并与列表中其他连音符的成员分开: 我要澄清的是我只想要这个:
[123,132 ...]或['123','132'...]
这两个是我在已经回答的帖子中找到的相似示例,只是为了阐明我想要与他们不同的东西。
连音符的文字字符串
“(1,2,3),(1,3,2)...”
或所有连音符一起格式化为一个列表的列表
[1,2,3,1,3,2 ...]
对此有什么建议吗?我有点控制Python,但是我对tuplet的工作原理一无所知。
编辑:我认为列表应该是字符串(而不是整数)
答案 0 :(得分:0)
您可以使用字符串join
从元组中使用适当的定界符构建字符串:
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 :(得分:0)
对于需要这种输出样式的情况:
[123,132 ...]
尝试以下操作:
b = [''.join(map(str,i)) for i in a]
# ['123', '132']
其中a
是排列列表。将joins
作为字符串的元组,并创建结果列表。
对于要以这种样式输出的情况:
[1,2,3,1,3,2 ...]
import numpy as np
b = np.array(a)
b = map(str, b.reshape(-1).tolist())
# ['1', '2', '3', '1', '3', '2']
这使用numpy数组函数很好地平整了您的条目。
答案 2 :(得分:-1)
a = [(1,2,3),(1,3,2)]
b = [''.join(map(str, s)) for s in a]
print (b)
# ['123', '132']