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'] |
其中,
对于希望输出采用此样式的情况:
[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数组函数来很好地平展您的条目。
可以使用字符串
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'] |