zltzlt 发表于 2020-4-9 17:37:21

Python 列表转数字

Python 列表转数字

第一种方法:

def list2num(li: list):
    return int(''.join(map(str, li)))

第二种方法:

from functools import reduce


def list2num(li: list):
    return reduce(lambda x, y: x * 10 + y, li)



def list2num(li: list):
    res = 0
    for i in li:
      res *= 10
      res += i
    return res

第三种方法:

from re import sub


def list2num(li: list):
    return int(sub('[^0-9]', '', str(li)))    # 替换非数字字符

如果还有其他方法,欢迎在评论区补充!{:10_311:}

Hello. 发表于 2020-4-9 17:40:15

赞赞赞{:10_288:}

_2_ 发表于 2020-7-12 20:34:24

本帖最后由 _2_ 于 2020-7-12 20:45 编辑

Emmmmm
我这里的实现不知可不可行:
def list2num(li: list): return int("".join())
简单测试:
list2num( + ["eee"])

zltzlt 发表于 2020-7-12 20:35:53

_2_ 发表于 2020-7-12 20:34
Emmmmm
我这里的实现不知可不可行:



AttributeError: 'str' object has no attribute 'digit'

_2_ 发表于 2020-7-12 20:37:32

zltzlt 发表于 2020-7-12 20:35
AttributeError: 'str' object has no attribute 'digit'

改了改了{:10_269:}
哎,老是打错

zltzlt 发表于 2020-7-12 20:39:29

_2_ 发表于 2020-7-12 20:37
改了改了
哎,老是打错

可以了,其实和我第一种方法原理一样

_2_ 发表于 2020-7-12 20:40:24

zltzlt 发表于 2020-7-12 20:39
可以了,其实和我第一种方法原理一样

列表推导式越用越舒服{:10_256:}
回不去了 QAQ

_2_ 发表于 2020-7-12 20:44:45

zltzlt 发表于 2020-7-12 20:39
可以了,其实和我第一种方法原理一样

只不过你的第一个没用非 int 字符串检查,
如果一个 not str.isdigit() 的字符串在列表 li 里就会报错

dongli2020 发表于 2020-7-12 21:29:00

请问下def list2num(li: list) 这个:是啥意思?

Nate_2020 发表于 2020-11-28 09:11:57

定义函数(li:list)和(li)有什么区别?

qiuyouzhi 发表于 2021-1-2 19:20:20

Nate_2020 发表于 2020-11-28 09:11
定义函数(li:list)和(li)有什么区别?

参数注解(?),用于表示这个参数的类型
和注释一样
页: [1]
查看完整版本: Python 列表转数字