鉴于此清单:
>>> a = "123DJY65TY"
>>> list(a)
['1','2','3','D','J','Y','6','5','T','Y']
如何生成不将整数视为字符串的列表?像这样:
[1,2,3,'D','J','Y',6,5,'T','Y']
答案 0 :(得分:5)
您可以使用list comprehension和str.isdigit
转换每个字符数字:
>>> a = "123DJY65TY"
>>> [int(x) if x.isdigit() else x for x in a]
[1, 2, 3, 'D', 'J', 'Y', 6, 5, 'T', 'Y']
答案 1 :(得分:1)
您可以使用map()
和str.isdigit()
转换包含仅限数字的列表中的所有字符串:
a = map(lambda char: int(char) if char.isdigit() else char, list(a))
例如:
In [3]: a = map(lambda char: int(char) if char.isdigit() else char, list(a))
In [4]: a
Out[4]: [1, 2, 3, 'D', 'J', 'Y', 6, 5, 'T', 'Y']
@niemmi使用列表推导的解决方案可能是一种更好的方法,因为我们从字符串开始,而不是列表。