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

2024-06-28 20:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

#!/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)..."

就像this post

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

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

就像this other post

有什么建议吗?我有点控制Python,但我对元组的工作原理一无所知

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


Tags: 字符串代码列表input成员thispostlist
3条回答

您可以使用字符串^{}从元组中构建具有适当分隔符的字符串:

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']

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

[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数组函数来很好地展平条目

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

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

相关问题 更多 >