我试图找到一种方法来反转集合的元素。在转换过程中,我们不应该将集合转换为任何其他数据类型,例如列表 我们不应该使用递归
他们有办法吗?
例如: S= {1,2,3}
输出:
3,2,1
套装未订购。因此,集合
{1, 2, 3}
和 {3, 2, 1}
本质上是相同的。list1 = [1, 2, 3]
list2 = list1[::-1]
print(list2)
输出是
>>> [3, 2, 1]
编辑:如果你想使用for循环:
list1 = [1, 2, 3]
list2 = []
for x in range(len(list1)-1, -1, -1):
list2.append(list1[x])
print(list2)
这段代码的逻辑是:
range(a, b, c)
函数需要 3 个参数:从 a
到 (b-1)
,每一步都是 c
。list1
的最后一个元素 (len(list1)-1) 移动到第一个元素 -1,步长为 -1,从而减少每一步。
我认为这遵循您的规则并按降序打印集合:
s = {1, 2, 3}
for _ in range(len(s)):
elem = max(s)
s.remove(elem)
print(elem, end=',' if s else '')
# 3,2,1
适用于小数量。可能不适用于大量且不适用于角色和其他项目
s = set()
s.add(1)
s.add(3)
s.add(2)
#forward list (ascending order)
flist = [i for i in s]
# >>> [1,2,3]
#reverse list (descending order)
rlist = [flist[len(flist)-i-1] for i in range(len(flist))]
# >>> [3,2,1]