【问题标题】:Randomly prints set elements in python在python中随机打印集合元素
【发布时间】:2021-12-22 08:46:22
【问题描述】:

我有 2 个列表。其中之一包括字符串,另一个包括整数。我想将其中两个添加到一个集合中,按顺序打印它们。但是当我尝试这样做时,该集合会在控制台中随机打印。我怎么解决这个问题? 这是我的数组,

['#', '*']    
[2, 3, 5, 6, 8]
['o', '€']

预期结果:

 {'#', '*', 2, 3, 5, 6, 8, 'o', '€'}

但实际上,集合中的元素总是在变化。它从来没有像设置更新顺序那样订购。另外,我正在使用set_x.update(arr_x) 方法来做到这一点。

注意:我想在没有外部库和函数的情况下解决这个问题。

【问题讨论】:

  • 这能回答你的问题吗? Does Python have an ordered set?
  • 不,这似乎不像我的答案
  • 你试过什么?在此处发布您的尝试。
  • @omeren 为什么OrderedSet 似乎不是答案?您是如何尝试使用 OrderedSet 的?为什么不起作用?
  • 我有两组 ` s1 = {2,3,5,'*',2,6,'#',3} s2 = {2,'o',3,5,6 ,8,'€'}` 我想将它们转换为{'#', '*', 2, 3, 5, 6}, {'#', '*', 2, 3, 5, 6, 8, 'o', '€'}, {2, 3, 5, 6}。我尝试将它们转换为数组,然后划分数据类型 2、整数和字符串。我得到整数和字符串数组。

标签: python arrays python-3.x sorting set


【解决方案1】:

当我这样做时:

def add_set(a, b, c):
    return set(a + b + c)
add_set(a, b, c)

我确实按照您要求的顺序拥有它们

【讨论】:

  • 你确定这会给出预期的结果吗? 3.9.7 中肯定没有
  • 我已经尝试过 set1=set(arr_1_str+arr_1_int) print(set1) 。这是结果{2, 3, 5, 6, '*', '#'}{2, 3, '*', 5, 6, '#'}。所以顺序总是在变化。
  • 这很奇怪,我在 3.9.5 中确实以正确的顺序排列了它们
猜你喜欢
  • 1970-01-01
  • 2017-12-11
  • 2013-07-26
  • 1970-01-01
  • 2013-05-06
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多