如果我有一个包含数字和单词的字符串列表,我如何将数字转换为整数并将单词作为字符串保留在列表中?
例如,这个:
badList = ['56','45','01','cat','64','dog']
会变成:
badList = [56, 45, 01, 'cat', 64, 'dog']
答案 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命名约定来修复变量...