【问题标题】:Integer Manipulation of arrays python数组python的整数操作
【发布时间】:2013-02-16 20:18:04
【问题描述】:

我有 2 个数组,我需要将一个数组中整数的最后一位与另一个数组中的整数进行切换。如果我向您展示输出以更好地了解我正在尝试做什么,那就更好了。我不确定至少可以做到这一点。

数组的输出:

first_array=['3', '4', '5', '2', '0', '0', '1', '7']
second_array=['527', '61', '397', '100', '97', '18', '45', '1']

它的样子:

first_array=['3', '4', '5', '2', '0', '0', '1', '7']
second_array =['523', '64', '395', '102', '90', '10', '41', '7']

【问题讨论】:

  • 您的数组包含字符串,而不是整数。但是,在这种情况下,它实际上使事情变得更容易。
  • 他们的字符串是什么,谢谢你的信息,我可以以某种方式将它们转换为整数,我知道它在 java 中是一种方式,但在 python 中不确定

标签: python list-manipulation


【解决方案1】:
>>> [s[:-1]+f for (f,s) in zip(first_array, second_array)]
['523', '64', '395', '102', '90', '10', '41', '7']

【讨论】:

  • 我能以某种方式将它们转换为整数,我知道它在 java 中是一种方式,但在 python 中不确定
  • @CalvinJones:至少在 Python 中,使用字符串更容易。如果您想要一个整数列表作为最终结果,只需使用[int(s[:-1]+f) for (f,s) in zip(first_array, second_array)]
【解决方案2】:

如果是实际整数,您可以尝试将第二个列表中的每个元素“向下舍入”到最接近的 10 的倍数,然后将第一个列表中的每个元素相加。例如:

>>> first = [3,4,5,6]
>>> second = [235,123,789,9021]
>>> second = [x - (x%10) for x in second]   
>>> second
[230, 120, 780, 9020]
>>> [x + y for (x,y) in zip(first, second)]
[233, 124, 785, 9026]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 2017-01-27
    • 2018-11-30
    • 2011-01-31
    相关资源
    最近更新 更多