如何无需特殊字符或引号解除列表/元组的绑定

2024-05-19 02:10:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用input来获取元组的值。但是,由于input将该值设置为字符串,所以我也尝试将其解绑。我发现eval可以用于此目的,但应该是distrusted.,而只要我私下使用代码,这就不会成为问题,如果我公开发布它,我希望使用尽可能最好的代码。

那么,在Python 3中有没有另一种解除atuple的方法呢?

以下是我目前正在做的事情:

>>> a = input("What is the value? ")
What is the value? (3,4)
>>> a
'(3,4)'
>>> eval(a)
(3, 4)

Tags: the方法字符串代码目的inputisvalue
3条回答

很简单,你不需要用户输入元组。相反,你这样做:

x = input("Enter x value: ")
y = input("Enter y value: ")

data = (
    int(x),
    int(y)
)

print( 
    repr(data)
)

--output:--
(10, 3)

我会这样做:

>>> inp = input()
'(3,4)'
>>> tuple(map(int, inp.strip()[1:-1].split(',')))
(3, 4)

其中strip将确保前导空格或尾随空格不会破坏您的一天。

使用eval的安全版本ast.literal_eval,它正是为您要实现的目标而设计的:

from ast import literal_eval
tup = literal_eval(a)

相关问题 更多 >

    热门问题