我有一个程序
我已经写了它,但是我希望程序在列表中循环,如果类型int
的值是-append,并且当字符串类型的下一个值显示原始列表并结束循环时
我认为我的代码执行得不好:
def is_int(val):
if type(val) == int:
return True
else:
return False
def is_string(val):
if type(val) == str:
return True
else:
return False
def is_float(val):
if type(val) == float:
return True
else:
return False
def invert(val):
k = len(val)
for i in range(k//2):
a = val[i]
val[i] = val[k-1]
val[k-1] = a
print(val)
lis = ["a","c",2,7]
lim = []
tart = 1
for x in lis:
if is_int(x) == True and is_int(lis[tart:]) == True:
lim.append(x)
tart += 1
elif is_string(x) == True and is_string(lis[tart:]) == True :
x = x.upper()
lim.append(x)
tart += 1
else:
print(lis)
break
invert(lim)
答案 0 :(得分:5)
您可以使用此-
all(isinstance(i, int) for i in lis)
如果list的所有元素都是整数,这将为您提供True
,然后您可以修改代码以针对字符串和整数进行测试
if all(isinstance(i, int) for i in lis):
return list(reversed(lis)) # return reversed list
elif all(isinstance(i, str) for i in lis):
return [i.upper() for i in lis] # change to uppercase and return the list
return lis # return list as is
答案 1 :(得分:0)
您可以改为执行以下操作:
if all(isinstance(i, int) for i in lis):
lim = lis[::-1]
elif all(isinstance(i, str) for i in lis):
lim = [i.upper() for i in lis]