反转集合中的元素

问题描述 投票:0回答:3

我试图找到一种方法来反转集合的元素。在转换过程中,我们不应该将集合转换为任何其他数据类型,例如列表 我们不应该使用递归

他们有办法吗?

例如: S= {1,2,3}

输出:

3,2,1

python python-3.x python-2.7 set
3个回答
4
投票

套装未订购。因此,集合

{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,从而减少每一步。


2
投票

我认为这遵循您的规则并按降序打印集合:

s = {1, 2, 3}
for _ in range(len(s)):
    elem = max(s)
    s.remove(elem)
    print(elem, end=',' if s else '')

# 3,2,1

0
投票

适用于小数量。可能不适用于大量且不适用于角色和其他项目

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]
© www.soinside.com 2019 - 2024. All rights reserved.