Return a variable in a Python list with double quotes instead of single

Question:

I am trying to return a variable from a list of strings in double quotes rather than single.

For example, if my list is

List = ["A", "B"]

if I type List[0] the output is 'A'. Rather, I want "A". Is there a way to do that? I need this because of an external script that runs in ArcGIS, which accepts only variables within double quotes.

Asked By: umbe1987

||

Answers:

If you need the output formatted in a particular way, use something like str.format():

>>> print('"{0}"'.format(List[0]))
"A"

The quotes you used to define the strings in the list are forgotten by Python as soon as the line is parsed. If you want to emit a string with quotes around it, you have to do it yourself.

What you’re seeing is the Python interpreter displaying a string representation of the value of the expression. Specifically, if you type an expression into the interpreter that doesn’t evaluate to None, it will call repr on the result in order to generate a string representation that it can display. For a string, this includes single quotes.

The interactive interpreter is essentially doing something like this each time you type in an expression (called, say, expr):

result = expr
if result is not None:
    print(repr(result))

Note that in my first example, print returns None, so the interpreter itself doesn’t print anything. Meanwhile, the print function outputs the string itself, bypassing the logic above.

Answered By: Will Vousden

You could use json.dumps()

>>> import json
>>> List = ["A", "B"]
>>> print json.dumps(List)
["A", "B"]
Answered By: fn.
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.