繁体   English   中英

如何将列表的子字符串转换为一个字符串

[英]how to covert substrings of a list into one single sting

我将一个元组列表生成到一个列表中。然后我想删除所有元组括号并将整个列表转换为一个字符串列表。我尝试这样做:

from itertools import permutations
l=[]
m=[]
perm = permutations([2,3,5,7], 4)
for i in list(perm):
    #print (i)
     l.append(i)
for data in l:
    k=("%s, %s, %s, %s" % data)
    m.append(k) 
o=' '.join(m)
print(o)

结果是:

2, 3, 5, 7 2, 3, 7, 5 2, 5, 3, 7 2, 5, 7, 3 2, 7, 3, 5 2, 7, 5, 3 3, 2, 5, 7 3, 2, 7, 5 3, 5, 2, 7 3, 5, 7, 2 3, 7, 2, 5 3, 7, 5, 2 5, 2, 3, 7 5, 2, 7, 3 5, 3, 2, 7 5, 3, 7, 2 5, 7, 2, 3 5, 7, 3, 2 7, 2, 3, 5 7, 2, 5, 3 7, 3, 2, 5 7, 3, 5, 2 7, 5, 2, 3 7, 5, 3, 2

不是每个数字都用逗号分隔,也不是单个字符串。 所需的 output 是这样的:

'235723752537257327'

permutation给出了类似的列表

[(2, 3, 5, 7), (2, 3, 7, 5), ...]

您可以将其转换为字符串列表

['2357', '2375', '2537'. ...] 

使用

 "%s%s%s%s" % data

没有命令和空格。

接下来您可以使用"".join()将新列表转换为单个字符串

from itertools import permutations

l = []

perm = permutations([2,3,5,7], 4)

for data in perm:
    l.append("%s%s%s%s" %data)

result = ''.join(l)

print(result)

与列表理解相同

from itertools import permutations

perm = permutations([2,3,5,7], 4)

result = ''.join("%s%s%s%s" % data for data in perm)

print(result)

但这将需要更长"%s%s%s%s"以获得更长的排列。

更好的方法是使用str()for -loop 和"".join()

 "".join(str(x) for x in data)

排队

 for data in perm:
     l.append( "".join(str(x) for x in data) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM