【发布时间】:2019-07-25 23:56:47
【问题描述】:
已解决
我的练习是编写一个名为 list_check 的函数,它接受来自用户的列表,如果用户列表中的每个元素本身也是一个列表,则返回 True。
最重要的是,我希望看到一个使用用户输入解决此问题的工作示例,这比您自己提供列表更困难。
这是我接受用户输入列表最接近的一次:
userlist = []
number_of_elements = int(input("Enter the number of elements in your list: "))
for i in range(0, number_of_elements):
element = input().split()
userlist.append(element)
if all(isinstance(element, list) for element in userlist):
print("True")
else:
print("False")
没有用户输入的工作代码如下:
customlist = [[1,2,3],[2,3,4], False]
def list_check(customlist):
answer = all(type(l) == list for l in customlist)
print(answer)
list_check(customlist)
错误
感谢您的帮助。 - J
【问题讨论】:
-
input()将始终返回一个字符串。所以你有一个列表的字符串表示,而不是一个列表,即"[1, 2, 3]"。 -
你可以改成
element = input().split() -
我对代码的最后一部分仍然有问题。我将其更改为 if 语句: if all(isinstance(element, list) for element in userlist): print(True) else: print(False)
-
我发布了一个答案,但你为什么要打印字符串 True 和 False 而不是布尔值?我不确定你是否知道这一点,但是 range(0, t) == range(t)。 0 是默认的起始整数。
-
你应该写一个函数,一个列表作为参数,一个布尔值作为返回值。您不应该将键盘输入或打印到控制台。
标签: python python-3.x list isinstance