如何将字符串转换为Python列表中的Int

时间:2018-01-21 23:42:27

标签: python python-3.x list int

如果我有一个包含数字和单词的字符串列表,我如何将数字转换为整数并将单词作为字符串保留在列表中?

例如,这个:

badList = ['56','45','01','cat','64','dog'] 

会变成:

badList = [56, 45, 01, 'cat', 64, 'dog']

5 个答案:

答案 0 :(得分:5)

您可以使用单行列表理解

good_list = [int(item) if item.isdigit() else item for item in bad_list]

答案 1 :(得分:2)

一种简单的方法是使用string.isdigit()

good_list = []
for element in bad_list:
    if element.isdigit():
        good_list.append(int(element))
    else:
        good_list.append(element)

答案 2 :(得分:1)

运行循环

goodList=badList[:]
for i in range(len(goodList)):
    if(goodList[i].isdigit()):
        goodList[i]=int(goodList[i])

答案 3 :(得分:1)

您可以将所有内容转换为int并捕获任何类型为int的错误,并将其附加为字符串,如下所示:

badList = ['56','45','01','cat','64','dog']
goodList = []

for o in badList:

    try: goodList.append(int(o))

    except ValueError: goodList.append(str(o))
print(goodList)

答案 4 :(得分:1)

如果您更喜欢使用例外,可以尝试:

bad_list = ['56','45','01','cat','64','dog'] 
good_list = []
for item in bad_list:
    try:
        good_list.append(int(item))
    except ValueError:
        good_list.append(item)
print(good_list)

BTW:我根据常见的python命名约定来修复变量...