在python

时间:2018-01-18 17:40:54

标签: python

我有一个字符串列表。我想将它解压缩到单个变量,并且在执行此操作时我想将一些字符串转换为整数。

蛮力方法可能如下所示

>>> my_list = ['a', '1', '2']
>>> a, b, c = my_list
>>> b = int(b)
>>> c = int(c)
>>> a,b,c
('a', 1, 2)

我正在寻找一种方法来进行转换,作为原始作业的一部分,因此我最终得到的结果如下:

>>> a, b, c = < some magic here >
>>> a,b,c
('a', 1, 2)

任何人都知道我在寻找什么魔法?

2 个答案:

答案 0 :(得分:3)

在解压缩之前或现在修复您的my_list

my_list = ['a', '1', '2']

a,b,c = (int(x) if x.isnumeric() else x for x in my_list )
print(type(a), type(b), type(c)) 
# <str, int int>

答案 1 :(得分:0)

如何使用自定义功能并使用地图

def conInt(x):
    try:
        return int(x)
    except ValueError:
        return x
my_list = ['a', '1', '2']
a, b, c = map(conInt, my_list)
print a,b,c

<强>结果:

a 1 2