我试图在一组中的值之间插入字符串'**'。除了消除我的集合中的{}。
提前感谢您提供所有帮助/建议。
我的输出应该是这样的:
SAMPLE OUTPUT
12**16**17**18**20**21**22**23**24**28**
Set has 7 even numbers and 3 odd numbers
我目前的代码是:
import random
def main():
random_set = set([])
while len(random_set) < 10:
random_set.add(random.randrange(10, 31))
print(random_set)
oddcount = 0
for x in random_set:
if x%2 ==1:
oddcount += 1
evencount = len(random_set) - oddcount
print('Set has', evencount, 'even numbers and', oddcount,'odd numbers'),
main()
我目前的输出是:
{10, 12, 14, 15, 18, 20, 25, 28, 29, 30}
Set has 7 even numbers and 3 odd numbers
答案 0 :(得分:2)
您可以使用str.join
方法创建一个字符串的字符串,其中包含项之间的指定分隔符:
In [58]: s = {10, 12, 14, 15, 18, 20, 25, 28, 29, 30}
In [59]: '**'.join(map(str, s))
Out[59]: '10**12**14**15**18**20**25**28**29**30'
注意,str.join
接受一个可迭代的字符串,因此您必须使用map(str, s)
将每个数字转换为字符串。
为了在字符串的末尾添加**
,您可以使用+
作为字符串连接运算符:
In [60]: '**'.join(map(str, s)) + '**'
Out[60]: '10**12**14**15**18**20**25**28**29**30**'
您还应注意,set
元素的顺序未指定。要按升序打印元素,您应手动对它们进行排序:
In [61]: '**'.join(map(str, sorted(s))) + '**'
Out[61]: '10**12**14**15**18**20**25**28**29**30**'
答案 1 :(得分:1)
我得到的是您尝试打印分隔序列。您可以使用str join方法和map函数来解决此问题。
>>> print("**".join(map(str, random_set)) + "**")
12**16**17**18**20**21**22**23**24**28**
Map将您集合中的每个元素转换为字符串等效值。 join方法返回一个字符串,其中序列的元素已与一些str分隔符连接在一起。
您可以使用+
将最终**
添加到字符串的末尾。
答案 2 :(得分:0)
您可以使用遍历random_set的for循环,然后将所有项目附加到列表中,然后打印与'**'
连接的列表:
list = []
for i in random_set:
list.append(str(i))
print('**'.join(list)
这将以您想要的格式打印它。