>>> k=input("请输入:")
请输入:1,2,3,q,Q
>>> k
'1,2,3,q,Q'
>>> l=k.split(",")
>>> l
['1', '2', '3', 'q', 'Q']
目的是去掉这个列表中整数上引号,类似l=[1,2,3,'q','Q']
但是找半天都没找到方法
参考GPT和自己的思路:
您可以使用Python中的列表推导式来消除列表中整数上的引号,例如:
l = [int(i) if i.isdigit() else i for i in k.split(",")]
这个列表推导式将首先使用split
函数将用户输入的字符串k
转换为一个列表,并将其存储在变量l
中。然后,它将对列表中的每个元素进行迭代。如果元素是一个数字字符串,它将把它转换成整数,并将整数添加到新的列表中。如果元素是一个字母或其他非数字字符串,它将直接添加到新列表中。通过这种方法,您可以从列表中消除整数上的引号。
def conv(x):
if x.isdigit():
return int(x)
return x
l=list(map(conv, k.split(","))
[n if not n.isnumeric() else int(n) for n in '1,2,3,q,Q'.split(',')]
Out[48]: [1, 2, 3, 'q', 'Q']
该回答引用GPTᴼᴾᴱᴺᴬᴵ
您可以使用列表解析来实现这个目的,代码如下:
k=input("请输入:")
l=k.split(",")
l = [int(x) if x.isdigit() else x for x in l]
这里使用了 isdigit() 函数来判断字符串是否为整数,如果是则使用 int() 函数将其转换为整数类型,否则不做任何操作。这样,列表中的整数就不会再有引号了。