将数字字符串拆分为偶数和奇数整数列表

米格罗尼莫

有这样的代码

numbers = '1 2 3 4 5 6 7 8'
nums = {'evens': [], 'odds': []}

for number in numbers.split(' '):
    if int(number) % 2:
        nums['odds'].append(number)
    else:
        nums['evens'].append(number)

如何在更少的行上完成相同的任务?

将要

短代码不是更好的代码。短代码不是更快的代码。短代码不是可维护的代码。虽如此,使您的各个组件简洁明了一件好事。

这是我会做的:

def split_odd_even(number_list):
    return {
        'odds': filter(lambda n: (n % 2) != 0, number_list),
        'evens': filter(lambda n: (n % 2) == 0, number_list)
    }

def string_to_ints(string):
    return map(int, numbers.strip().split())

numbers = '1 2 3 4 5 6 7 8 9 10'
nums = split_odd_even(string_to_ints(numbers))

print nums

这给了我:

{'odds': [1, 3, 5, 7, 9], 'evens': [2, 4, 6, 8, 10]}

尽管这段代码实际上增加了几行长度,但是随着我们应用了Abstraction并使代码的每个组件仅做一件事情,它变得更加清楚了程序在做什么

即使我们添加了两个函数,代码中最可见的部分也由此消失了:

numbers = '1 2 3 4 5 6 7 8'
nums = {'evens': [], 'odds': []}
for number in numbers.split(' '):
    if int(number) % 2:
        nums['odds'].append(number)
    else:
        nums['evens'].append(number)

对此:

numbers = '1 2 3 4 5 6 7 8 9 10'
nums = split_odd_even(string_to_ints(numbers))

仅通过阅读这两行,我们就知道将numbers其从字符串转换为ints的列表,然后将这些数字拆分为奇数和偶数,并将结果分配给nums

要解释一些可能不是所有人都熟悉的事情:

  • map()list(或tuple其他可迭代)中的每个项目调用一个函数,并返回一个新列表,其中包含对每个项目调用该函数的结果在这种情况下,我们使用它来调用int()列表中的每个项目。

  • filter()list(或tuple其他可迭代)中的每个项目调用一个函数,该函数返回TrueFalse为每个项目(well,truefalsey),并返回在True调用该函数时要求值的项目列表

  • Lambda表达式(lambda)类似于带有参数的“迷你函数”,并且可以就地创建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字母数字字符串拆分为分别包含字母和数字字符的数组

来自分类Dev

将非数字字符串转换为整数?

来自分类Dev

在matlab中将字符串拆分为偶数和奇数段

来自分类Dev

偶数和奇数列表

来自分类Dev

将字符串拆分为文本和整数

来自分类Dev

将数字字符串拆分为一位数字和两位数字的可能组合

来自分类Dev

如何将字符串拆分为整数?

来自分类Dev

如何将字符串拆分为奇数序列?

来自分类Dev

如何将字母数字字符串拆分为数组

来自分类Dev

将字符串拆分为字符串和整数

来自分类Dev

如何在Python中将没有空格的字符串拆分为整数列表?

来自分类Dev

Python将字符串分为整数,字符串和小数的列表

来自分类Dev

如何在C ++中将整数链接列表递归拆分为奇数和偶数列表?

来自分类Dev

将数组递归拆分为奇数和偶数元素的模式

来自分类Dev

将整数列表分为偶数和奇数和的交替组

来自分类Dev

将列返回的字符串拆分为整数

来自分类Dev

偶数和奇数列表

来自分类Dev

如何将数字字符串拆分为单个数字并将其放入链表?

来自分类Dev

Java:将字符串拆分为整数

来自分类Dev

将字符串拆分为列表

来自分类Dev

如何使用javascript将字典列表中的数字字符串转换为整数?

来自分类Dev

如何将这些字符串数组列表[{},{},{} ...]拆分为字符串或整数?

来自分类Dev

将字符串拆分为字符串和整数

来自分类Dev

将字符串拆分为两个整数

来自分类Dev

将数字字符串拆分为整数数组

来自分类Dev

如何将字符串拆分为字母字符串和数字字符串?

来自分类Dev

将每个数组列表/列表元素拆分为整数和字符串的元组

来自分类Dev

在python中将数字字符串转换为整数列表

来自分类Dev

如何将字符串数字拆分为单独的整数

Related 相关文章

  1. 1

    将字母数字字符串拆分为分别包含字母和数字字符的数组

  2. 2

    将非数字字符串转换为整数?

  3. 3

    在matlab中将字符串拆分为偶数和奇数段

  4. 4

    偶数和奇数列表

  5. 5

    将字符串拆分为文本和整数

  6. 6

    将数字字符串拆分为一位数字和两位数字的可能组合

  7. 7

    如何将字符串拆分为整数?

  8. 8

    如何将字符串拆分为奇数序列?

  9. 9

    如何将字母数字字符串拆分为数组

  10. 10

    将字符串拆分为字符串和整数

  11. 11

    如何在Python中将没有空格的字符串拆分为整数列表?

  12. 12

    Python将字符串分为整数,字符串和小数的列表

  13. 13

    如何在C ++中将整数链接列表递归拆分为奇数和偶数列表?

  14. 14

    将数组递归拆分为奇数和偶数元素的模式

  15. 15

    将整数列表分为偶数和奇数和的交替组

  16. 16

    将列返回的字符串拆分为整数

  17. 17

    偶数和奇数列表

  18. 18

    如何将数字字符串拆分为单个数字并将其放入链表?

  19. 19

    Java:将字符串拆分为整数

  20. 20

    将字符串拆分为列表

  21. 21

    如何使用javascript将字典列表中的数字字符串转换为整数?

  22. 22

    如何将这些字符串数组列表[{},{},{} ...]拆分为字符串或整数?

  23. 23

    将字符串拆分为字符串和整数

  24. 24

    将字符串拆分为两个整数

  25. 25

    将数字字符串拆分为整数数组

  26. 26

    如何将字符串拆分为字母字符串和数字字符串?

  27. 27

    将每个数组列表/列表元素拆分为整数和字符串的元组

  28. 28

    在python中将数字字符串转换为整数列表

  29. 29

    如何将字符串数字拆分为单独的整数

热门标签

归档