> i want to print something like this > > |\| > > first i tried it as string > > a = "|\|" > > it prints ok > > but when i put it to a list > > a = ["|\|"] > > it gives me '|\\|' .there are 2 back slashes...i only want one.. how > can i properly escape it? > I have tried [r"|\|"] , [r'\\'] but they do not work...
You omit how you're printing matters. >>> s1 = '|\|' >>> s2 = r'|\|' >>> s3 = '|\\|' >>> print repr(s1), '->', s1 '|\\|' -> |\| >>> print repr(s2), '->', s2 '|\\|' -> |\| >>> print repr(s3), '->', s3 '|\\|' -> |\| There's a difference between the repr() of a string (which escapes items that need to be escaped) and printing items. All three *print* the item as you request it. All three represent the item with the proper backslashes. The preferred form of putting backslashes in a string is the s2 or s3 form, as the s1 form can have some "unpredictable"(*) results: "\|" happens not to be a recognized escape sequence "\t" is, so you get things like >>> s = '\t\|' >>> s '\t\\|' -tkc (*) "unpredictable" defined as, "predictable, if you happen to have memorized the exact set of characters that do or don't need to beescaped" -- http://mail.python.org/mailman/listinfo/python-list