List 将数字输入空列表
我正在编写一个演示线性搜索的程序,但是我被我正在采取的一个步骤困住了。在这一步中,我试图让程序获取一个用逗号分隔的数字的输入列表,然后以列表形式返回列表。List 将数字输入空列表,list,python-3.x,input,append,tuples,List,Python 3.x,Input,Append,Tuples,我正在编写一个演示线性搜索的程序,但是我被我正在采取的一个步骤困住了。在这一步中,我试图让程序获取一个用逗号分隔的数字的输入列表,然后以列表形式返回列表。 (例1,5,2,4-->[1,5,2,4])。 到目前为止,我的代码将以列表形式返回输入,但仅当我输入一个数字时。(例3-->[3]) 但当我输入带有逗号的数字列表时,会出现以下错误: Traceback (most recent call last): File "C:/Users/eardery/Desktop/Final Ex
(例1,5,2,4-->[1,5,2,4])。 到目前为止,我的代码将以列表形式返回输入,但仅当我输入一个数字时。(例3-->[3]) 但当我输入带有逗号的数字列表时,会出现以下错误:
Traceback (most recent call last):
File "C:/Users/eardery/Desktop/Final Exam Practice/linearsearch.py", line 8, in <module>
main()
File "C:/Users/eardery/Desktop/Final Exam Practice/linearsearch.py", line 4, in main
n = int(n)
TypeError: int() argument must be a string or a number, not 'tuple'
回溯(最近一次呼叫最后一次):
文件“C:/Users/eardery/Desktop/Final-examice-Practice/linearsearch.py”,第8行,在
main()
文件“C:/Users/eardery/Desktop/Final-examice-Practice/linearsearch.py”,第4行,在main中
n=int(n)
TypeError:int()参数必须是字符串或数字,而不是“tuple”
还有什么方法可以在不出现错误的情况下评估输入,并让程序按照我的预期工作?有人能解释一下“元组”是什么吗?这里不应该使用
eval
<使用用户输入时,最好避免使用代码>评估。此外,当它以不同于单个整数的方式处理整数列表时,它通常会返回意外的结果,就像您的情况一样。)
像这样的怎么样:
line = input("Enter list of numbers separated by commas: ")
data = [int(i) for i in line.split(',')]
最后一行将分割逗号周围的文本,并将每个元素转换为int
data = []
for i in line.split(','):
data.append(int(i))
您不应在此处使用
eval
<使用用户输入时,最好避免使用代码>评估。此外,当它以不同于单个整数的方式处理整数列表时,它通常会返回意外的结果,就像您的情况一样。)
像这样的怎么样:
line = input("Enter list of numbers separated by commas: ")
data = [int(i) for i in line.split(',')]
最后一行将分割逗号周围的文本,并将每个元素转换为int
data = []
for i in line.split(','):
data.append(int(i))
Tuple是一个不可变(不可更改)的列表。这是Python假定您输入的内容,因为它是一个逗号分隔的列表
拆分(',')
允许您将'1,2,3'
拆分为['1','2','3']
并将'4'转换为['4']
您仍然需要将每个字符串转换为int,我正在对此进行列表理解
def main():
n = input("Enter list of numbers separated by commas: ")
# For each val in list of input, make int.
list = [int(val) for val in n.split(',')]
print(list)
if __name__ == '__main__':
main()
Tuple是一个不可变(不可更改)的列表。这是Python假定您输入的内容,因为它是一个逗号分隔的列表
拆分(',')
允许您将'1,2,3'
拆分为['1','2','3']
并将'4'转换为['4']
您仍然需要将每个字符串转换为int,我正在对此进行列表理解
def main():
n = input("Enter list of numbers separated by commas: ")
# For each val in list of input, make int.
list = [int(val) for val in n.split(',')]
print(list)
if __name__ == '__main__':
main()
不要使用eval,因为eval是邪恶的
def main():
raw = input("Enter list of numbers separated by commas: ")
numbers = list(map(int, raw.split(',')))
print(numbers)
if __name__ == '__main__':
main()
不要使用eval,因为eval是邪恶的
def main():
raw = input("Enter list of numbers separated by commas: ")
numbers = list(map(int, raw.split(',')))
print(numbers)
if __name__ == '__main__':
main()
您不需要eval函数。仅用于评估材料 您需要通过split函数分割输出,并将其转储到列表中 您的解决方案:-
def main():
n = raw_input("Enter list of numbers separated by commas: ")
list= [int(value) for value in n.split(',')]
print(list)
main()
您不需要eval函数。仅用于评估材料 您需要通过split函数分割输出,并将其转储到列表中 您的解决方案:-
def main():
n = raw_input("Enter list of numbers separated by commas: ")
list= [int(value) for value in n.split(',')]
print(list)
main()
看看
n
包含的内容;-)请不要使用列表
作为变量名。这个名字有一个内置的东西,eval
实际上为您完成了工作,n
是int
s的元组。但实际上,你应该听从下面回答者的建议,不要在用户输入时使用eval
请不要使用列表
作为变量名。这个名字有一个内置的东西,eval
实际上为您完成了工作,n
是int
s的元组。但实际上,您应该听取下面回答者的建议,不要在用户输入时使用eval
。这不会将字符串转换为int。您可以键入cast by int():)不要使用list,它是内置类型。第一次分配给列表
是没有用的。我故意把它留着让他理解。我知道在不声明VARABLE的情况下,它是可以实现的。这不会将字符串转换为int。您可以键入cast by int():)不要使用list,它是一个内置类型。第一次分配给列表
是没有用的。我故意把它留着让他理解。我知道在不声明VARABLE的情况下,它是可以实现的注:他显然在使用Python 3,因此它应该是input
,而不是raw\u input
。您完全正确,先生。旧习难改。我已经适应了,它成功了!我知道我现在犯了什么错误。非常感谢。注意:他显然在使用Python3,因此它应该是input
,而不是raw\u input
。您完全正确,先生。旧习难改。我已经适应了,它成功了!我知道我现在犯了什么错误。非常感谢。你不能。您只能获得单个字符的列表。这只返回字符串列表。必须转换为整数。您不能。您只能获得单个字符的列表。这只返回字符串列表。必须转换为整数。嘿,-2?为什么?请评论!最有可能是因为list(map(int,raw.split(','))
不像[int(val)for val in raw.split(','))那样通灵。
。此外,使用列表理解的优化通常比list
和map
更快。对不起,这是一个品味问题;-)我没有否决投票,但我想这就是原因。我发现这个列表更容易快速阅读。嘿,-2?为什么?请评论!最有可能是因为list(map(int,raw.split(','))
不像[int(val)for val in raw.split(','))那样通灵。
。此外,使用列表理解的优化通常比list
和map
更快。对不起,这是一个品味问题;-)我没有否决投票,但我想这就是原因。我发现这张清单很容易快速阅读。