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

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

Check if input is a List in Python

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

主程序
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']

检查输入是否为列表

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

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

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

如果您需要将从用户输入中获取的多个值拆分为一个列表,请使用该
str.split()方法。

主程序
input_list = input('Enter multiple, space-separated values: ').split() print(input_list) # 👉️ ['hello' , 'world']

该示例假定您希望从用户那里获得多个以空格分隔的值,例如hello worldwalk the dog

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

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

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

主程序
input_list = input('Enter multiple, comma-separated values: ').split(',') print(input_list) # 👉️ ['hello' , 'world']

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

姓名 描述
分隔器 在每次出现分隔符时将字符串拆分为子字符串
最大分裂 最多maxsplit完成拆分(可选)

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

发表评论