在 Python 中根据用户输入创建集合
Creating a Set from user Input in Python
set
从用户输入创建对象:
- 使用
input()
函数从用户那里获取输入。 - 使用该
str.split()
函数将输入字符串拆分为列表。 - 使用
set()
该类将列表转换为set
对象。
主程序
import ast # ✅ create a set from string user input my_set = set(input('Enter space-separated words: ').split()) print(my_set) # ------------------------------- # ✅ create a set from integer user input user_input = input('Enter space-separated integers: ') my_set = set(int(item) for item in user_input.split()) print(my_set) # ------------------------------- # ✅ create a set from user input try: input_list = ast.literal_eval( input('Enter a valid Python set, e.g. {"a", "b"}: ') ) except ValueError: print('The provided value is not a set object') print(input_list) # 👉️ ('a', 'b')
我们使用该input()
函数从用户那里获取输入。
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
请注意,
input()
即使用户输入数字,该函数也会返回一个字符串。我们使用该str.split()
方法在每个空白字符上拆分用户输入的字符串。
主程序
my_set = set(input('Enter space-separated words: ').split()) print(my_set)
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
当没有分隔符传递给该
str.split()
方法时,它会将输入字符串拆分为一个或多个空白字符。您还可以使用另一个字符串分隔符,例如逗号。
主程序
my_set = set(input('Enter comma-separated words: ').split(',')) print(my_set)
该str.split()
方法在每个逗号处拆分输入字符串。
如果您需要根据用户输入创建set
整数,请使用生成器表达式将每个输入字符串转换为整数。
主程序
user_input = input('Enter space-separated integers: ') my_set = set(int(item) for item in user_input.split()) print(my_set)
我们使用该str.split()
函数在每个空白字符上拆分输入字符串。
然后我们使用生成器表达式迭代列表。
生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们使用int()
该类将输入字符串转换为整数。
或者,您可以使用该ast.literal_eval
方法。
主程序
import ast try: input_list = ast.literal_eval( input('Enter a valid Python set, e.g. {"a", "b"}: ') ) except ValueError: print('The provided value is not a set object') print(input_list) # 👉️ ('a', 'b')
ast.literal_eval
方法允许我们安全
地评估包含 Python 文字的字符串。
字符串可能由字符串、字节、数字、元组、列表、字典、集合、布尔值和 None 组成。
这假定预期输入是有效的 Python set
,例如{1, 2, 3}
.