Here is my example:
>>> a=input ('some text : ') # value entered is 1,1
>>> print (a)
1,1
I want as a result a tuple (1, 1)
How can I do this?
Here is my example:
>>> a=input ('some text : ') # value entered is 1,1
>>> print (a)
1,1
I want as a result a tuple (1, 1)
How can I do this?
You could do something like
a = tuple(int(x) for x in a.split(","))
You could interpret the input as Python literals with ast.literal_eval()
:
import ast
a = ast.literal_eval(input('some text: '))
This function will accept any input that look like Python literals, such as integers, lists, dictionaries and strings:
>>> ast.literal_eval('1,1')
(1, 1)
ast.literal_eval()
doesn't support entering functions. Only literals are supported; strings, booleans, numbers, lists, tuples, dictionaries and None
. That's it. –
Logan isinstance(result, tuple)
to ensure that only tuples are being entered. –
Logan It can be done in the following way.
a = '3, 5, 7, 23'
out = tuple(map(int, a.split(",")))
print(out)
(3, 5, 7, 23)
It's very simple.
tup = tuple(input("enter tuple"))
print(tup)
This will work.
tuple()
will create a tuple from the string's characters. So for example, for the OP's input of 1,1
, your code will output ('1', ',', '1')
–
Ulrikaumeko >>> a = input()
(21, 51, 65, 45, 48, 36, 8)
>>> m = eval(a)
>>> type(m)
<class 'tuple'>
ast.literal_eval
is already posted as an answer here. –
Carangid © 2022 - 2024 — McMap. All rights reserved.