【问题标题】:Splitting a list into two lists based on its types of elements? Distinguishing numbers and strings elements of lists in two different lists? [closed]根据元素类型将列表拆分为两个列表?区分两个不同列表中列表的数字和字符串元素? [关闭]
【发布时间】:2019-08-10 23:59:03
【问题描述】:

我想在 python 3.X 中将 ['123', '213', 'acd', '321', 'dac'] 更改为 [['123', '321', '213'], ['acd', 'dac']]

【问题讨论】:

  • 这里没有元组...另外,您列表中的所有元素都是同一类型...
  • 那里没有元组,只有所有字符串的列表。
  • 我想根据字符串字符和数字进行拆分!
  • 此问题缺少上下文或其他详细信息:请通过提供其他上下文来改进问题,最好包括您对问题的想法以及您为解决问题所做的任何尝试。这些信息可以帮助其他人识别您遇到的困难,并帮助他们写出适合您经验水平的答案。您还需要准确说明您的困难是什么,您的预期是什么,您得到了什么,以及任何追溯。
  • @juanpa-arrivillaga 所有数据都是相同类型的一个由字符元素和编号元素组成的列表!我想把它们分开

标签: python python-3.x list tuples


【解决方案1】:

我认为这是实现您想要的最简单的方法:

arr = ['123', '213', 'acd', '321', 'dac']

new_arr = [[], []]
for element in arr:
    try:
        new_arr[0].append(int(element))
    except ValueError:
        new_arr[1].append(element)


print(new_arr)

【讨论】:

  • 关于类型限制或如何使用它的问题尚不清楚,但我的建议是尝试转换为decimal.Decimal 而不是int。这样就支持浮点数。我认为在这种情况下要捕获的异常是decimal.InvalidOperation
  • @kungphu 您的建议是有效的。但是,我认为问题很小,因此,答案仅限于所提供的示例。否则,要处理的案件会比你的建议多得多。
  • 这是看待它的一种方式...我倾向于添加我认为相关且可能有用的任何内容,因为提出这样的问题的人可能会受益于对可能未来问题的进一步解释和详细信息以及/或有用的语言功能。
  • @kungphu 提出修改建议,我会批准,只是为了尊重您的建议。
猜你喜欢
  • 2018-10-29
  • 2017-04-25
  • 2021-11-30
  • 2021-12-02
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 2017-12-30
  • 2017-08-10
相关资源
最近更新 更多