Python 中检查输入是否是为列表

使用 isinstance() 函数检查输入是否为列表,例如 if isinstance(my_list, list):。 如果传入的对象存储一个列表,isinstance() 函数将返回 True,否则返回 False。

import ast


# ✅ Check if variable stores a list
my_list = ['a', 'b', 'c']

if isinstance(my_list, list):
    print('The variable stores a list')

print(type(my_list))  # 👉️ <class 'list'>
# ------------------------------------------

# ✅ Check if user input is list (e.g. ['a', 'b',])
try:
    input_list = ast.literal_eval(
        input('Enter a valid Python list, e.g. tasks=["walk the dog"]: ')
    )
except ValueError:
    print('The provided value is not a list')

print(input_list)  # 👉️ ['a', 'b']

# ------------------------------------------

# ✅ Split value from user input into a list

input_list = input('Enter multiple, space-separated values: ').split()

print(input_list)  # 👉️ ['hello' , 'world']

第一个示例使用 isinstance() 函数检查提供的值是否为列表。

my_list = ['a', 'b', 'c']

if isinstance(my_list, list):
    print('The variable stores a list')

print(type(my_list))  # 👉️ <class 'list'>

如果传入的对象是传入类的实例或子类,则 isinstance 函数返回 True。

我们可以使用类型类来获取对象的类型。

如果我们需要检查用户输入是否为列表,请使用 ast.literal_eval() 方法

import ast


try:
    input_list = ast.literal_eval(
        input('Enter a valid Python list, e.g. ["walk the dog"]: ')
    )
except ValueError:
    print('The provided value is not a list')

print(input_list)  # 👉️ ['a', 'b']

Python 中检查输入是否是为列表

ast.literal_eval 方法允许我们安全地评估包含 Python 文字的字符串。

字符串可以由字符串、字节、数字、元组、列表、字典、集合、布尔值和无组成。

这假设预期的输入是一个有效的 Python 列表,例如 **[1、2、3]**。

如果我们需要将来自用户输入的多个值拆分为一个列表,请使用 str.split() 方法。

input_list = input('Enter multiple, space-separated values: ').split()

print(input_list)  # 👉️ ['hello' , 'world']

该示例假设我们希望从用户那里获得多个以空格分隔的值,例如 hello world or walk the dog

str.split() 方法使用分隔符将字符串拆分为子字符串列表。

当 str.split() 方法在没有参数的情况下被调用时,它会将连续的空白字符视为单个分隔符。

如果我们需要从用户输入中获取多个逗号分隔的值并将它们拆分为一个列表,则可以使用相同的方法。

input_list = input('Enter multiple, comma-separated values: ').split(',')

print(input_list)  # 👉️ ['hello' , 'world']

str.split() 方法采用以下 2 个参数:

  • separator 在每次出现分隔符时将字符串拆分为子字符串
  • maxsplit 最多完成最大拆分(可选)

我们使用逗号作为 separator 参数,因此希望用户提供多个以逗号分隔的值,例如 apple,banana,melon

免责声明:
1.本站所有内容由本站原创、网络转载、消息撰写、网友投稿等几部分组成。
2.本站原创文字内容若未经特别声明,则遵循协议CC3.0共享协议,转载请务必注明原文链接。
3.本站部分来源于网络转载的文章信息是出于传递更多信息之目的,不意味着赞同其观点。
4.本站所有源码与软件均为原作者提供,仅供学习和研究使用。
5.如您对本网站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。
火焰兔 » Python 中检查输入是否是为列表