我想从python中的列表中提取一个元素。
例如:
a = [0,1,2,3]
b = ['0','1','2','3']
a1 = a[0]
b1 = b[0]
print(a1)
print(b1)
正如所料,代码为a1和b1打印0。
但是我想得到' 0'对于a1和b1都用单引号而不是0。
任何想法或帮助都会非常感激。
谢谢,
伊萨克
答案 0 :(得分:2)
引号不是值的一部分 - 它们仅用于区分e。 G。 1
来自字符串,只有符号 1
。
print()
函数即使在字符串周围也不打印引号(与交互式会话不同,当你输入只有变量名或表达式时)。
所以你已经手动将它们放入print()
函数,e。克。
print("'" + str(a1) + "'")
print("'" + b1 + "'")
或
print("'{}'".format(a1))
print("'{}'".format(b1))
或 - 在Python 3.6+中 -
print(f"'{a1}'")
print(f"'{b1}'")
答案 1 :(得分:1)
通常,Python会打印一个没有引号的字符串。这几乎是所有编程语言的标准。
但是,Python 允许您使用引号打印字符串,您只需要告诉它打印字符串的表示。一种方法是使用!r
格式化指令。
a
中的项目是整数,如果您希望将它们打印为字符串,则需要将它们转换为字符串。
a = [0, 1, 2, 3]
b = ['0','1','2','3']
a1 = a[0]
b1 = b[0]
print('{!r}'.format(str(a1)))
print('{!r}'.format(b1))
<强>输出强>
'0'
'0'
您可以在the official tutorial中了解字符串的表示形式。
还有其他方法可以查看字符串的表示形式。例如,您可以调用内置的repr
函数:
print(repr(b1))
请记住,如果一个字符串已经包含单引号字符,那么它的表示将用双引号括起来:
s = "A 'test' string"
print(repr(s))
<强>输出强>
"A 'test' string"
如果字符串包含引号的混合,那么表示将恢复为使用单引号,并使用反斜杠转义来表示单引号:
s = "A 'test' \"string\""
print(repr(s))
<强>输出强>
'A \'test\' "string"'
因此,如果由于某种原因你不想要这种行为,那么你需要明确地打印引号:
s = "A 'test' string"
print("'{}'".format(s))
<强>输出强>
'A 'test' string'
答案 2 :(得分:0)
阱,
>>> print(repr(str(a1)))
'0'
>>> print(repr(str(b1)))
'0'
会这样做,但正如其他人评论的那样,我不确定你的意图。
答案 3 :(得分:0)
我在网上搜索了Why are some Python strings are printed with quotes and some are printed without quotes?
我认为如果按如下方式打印,它将按您的意愿工作:
print(repr(a1))
print(repr(b1))