[英]How to remove blank inverted comma from my list and tuple in python?
我是一名新的 Python 开发人员。 如果你能帮我解决这个问题,我会很高兴的。 问题是我做了一个列表和元组。 用户必须键入一些逗号分隔的数字。 所以我期待这个结果:
List : ['3', '4', '2', '3', '5']
Tuple : ('3', '4', '2', '3', '5')
并且数字应按升序显示。 它通过以下代码工作,但显示了一些额外的引号,因此如何删除那些空白逗号。
键入一些逗号分隔的数字:4 4 5 6 2 3 1
List : [' ', ' ', ' ', ' ', ' ', ' ', '1', '2', '3', '4', '4', '5', '6']
Tuple : [' ', ' ', ' ', ' ', ' ', ' ', '1', '2', '3', '4', '4', '5', '6']
这是我用来按升序生成列表和元组的代码。 另一件事是当我在输入中提供 int() 方法时,用户只能输入数字,而不是任何字符串。 它显示一个错误,那么如何做到这一点?
values = input("Type some comma separated numbers: ")
list = values.split()
tuple = tuple(list)
tuple= sorted(values, reverse = False)
list= sorted(values, reverse = False)
print('List : ', list)
print('Tuple : ', tuple)
list
、 tuple
、 set
或任何保留关键字用作变量名。values.split(',')
而不是values.split()
,您必须传递将用于拆分字符串的分隔符。sorted(<your_list>)
或<your_list>.sort()
可以使用-如果你是好奇,想知道它们之间的区别2最后,您的代码可以最小化为,
values = input("Type some comma separated numbers: ")
list_variable = sorted(values.split(','))
tuple_variable = tuple(list_variable)
print('List : ', list_variable)
print('Tuple : ', tuple_variable)
在调用 input() 时不能使用 int() ,因为通过用空格分隔数字,您正在创建一个字符串,其中的数字与 base10 数字不相似,因此您会得到 ValueError 。
例如:
values = '4 4 5 6 2 3 1'
int(values)
ValueError: invalid literal for int() with base 10: '4 4 5 6 2 3 1'
然而:
values = '4456231'
int(values)
4456231
正如@Corralien 所提到的,您不能使用内置的保留关键字,如 list 和 tuple (除非您先删除它们的命名空间,但这会使事情变得不必要地复杂)。 不使用空格分隔关键字的 = 符号也被认为是良好的语法。 为了得到你需要的东西,你可以这样做:
values = input("Type some comma separated numbers: ")
l = sorted(values.split(), reverse=False)
t = sorted(tuple(l), reverse=False)
print('List : ', l)
print('Tuple : ', t)
但这不会让您获得整数形式的值,在这种情况下,最好的方法是进行列表理解。 我们使用它在列表 l 的值之间进行迭代,并将它们转换为列表 n 中的 int。
values = input("Type some comma separated numbers: ")
l = sorted(values.split(), reverse=False)
n = [int(x) for x in l]
t = sorted(tuple(n), reverse=False)
print('List : ', n)
print('Tuple : ', t)
但是,您要求用户输入以逗号分隔的值,而不是空格。 因此,大多数用户会输入4,4,5,6,2,3,1
而不是4 4 5 6 2 3 1
。 在这种情况下,您需要调整代码以使其看起来更像这样:
values = input("Type some comma separated numbers: ")
l = sorted(values.split(','), reverse=False)
n = [int(x) for x in l]
t = sorted(tuple(n), reverse=False)
print('List : ', n)
print('Tuple : ', t)
你可以简单地这样做:
values = input("Type some comma separated numbers: ")
List=sorted(values.split(','))
Tuple=tuple(List)
print('List : ', List)
print('Tuple : ', Tuple)
您弄乱了变量名称:您的代码将input()
存储到values
。
然后拆分values
并将拆分后的数据存储到list
(不要使用内置名称作为变量!)。
然后你做tuple= sorted(values, reverse = False)
它使用未拆分(!)原始字符串 - 而不是你刚刚创建的拆分数据。
那是你需要纠正的错误。
本质上,您对未拆分的字符串进行排序,从而为您提供输入的字符排序列表!
在那之后承诺一种类型的拆分 - 通过空格,逗号或其他任何方式并坚持下去。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.