Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查列表是否仅由整数组成_Python - Fatal编程技术网

Python 检查列表是否仅由整数组成

Python 检查列表是否仅由整数组成,python,Python,我有一个程序 如果列表仅由整数组成,则反转列表的顺序 如果列表仅包含单词,则将列表项转换为大写 如果列表成员不满足这两个条件之一,则返回相同的列表 虽然我希望程序在列表中循环,但是我已经编写了它,如果类型int-append的值以及类型string的下一个值何时显示原始列表和结束循环 我认为我的代码我的代码做得不好: def is_int(val): if type(val) == int: return True else: return F

我有一个程序

  • 如果列表仅由整数组成,则反转列表的顺序
  • 如果列表仅包含单词,则将列表项转换为大写
  • 如果列表成员不满足这两个条件之一,则返回相同的列表
虽然我希望程序在列表中循环,但是我已经编写了它,如果类型
int
-append的值以及类型string的下一个值何时显示原始列表和结束循环

我认为我的代码我的代码做得不好:

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)
你可以用这个-

all(isinstance(i, int) for i in lis)
这将为您提供
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
你可以用这个-

all(isinstance(i, int) for i in lis)
这将为您提供
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

您可以改为执行以下操作:

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]

您可以改为执行以下操作:

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]

它在哪一点上失败了?您的子例程是否按预期工作?@Loebl如何确保它检查列表是否只包含整数,然后追加该项。如果列表包含混合物,请转到else部分并打印出原始列表,在哪一点失败?您的子例程是否按预期工作?@Loebl如何确保它检查列表是否只包含整数,然后追加该项。如果列表中包含混合物,请转到else部分并打印出原始列表