2017-11-03 74 views
-1

我想从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

任何想法或帮助将非常感激。

谢谢

伊萨克

+1

你想打印吗?还是需要三个字符长的字符串'0'作进一步处理? – GPhilo

+1

这不是值和类型的工作方式。 print(0)和print('0')的输出在几乎所有的语言中都是一样的,但这也是完全不相关的。如果您想打印单引号,请输入“print(”'“)''单引号。 – hop

+0

@GPhilo:我需要三个字符的字符串'0'。谢谢你, – Isaac

回答

2

引号不是值的一部分 - 他们仅用于区分即G。 的号码1字符串只有符号1

print()功能不打印,甚至周围的字符串引号(不像一个交互式会话,当你给作为输入只有一个变量名或表达式)。

因此,您已经手动将它们放入print()函数,例如, G。

print("'" + str(a1) + "'") 
print("'" + b1 + "'") 

print("'{}'".format(a1)) 
print("'{}'".format(b1)) 

或者 - 在Python 3.6+ -

print(f"'{a1}'") 
print(f"'{b1}'") 
+0

'print()'函数仅将值输出到屏幕。引号不是(字符串)值'1'的一部分。 – hop

+0

@hop我不明白 - 它与我的回答有什么关系? – MarianD

+0

它进一步澄清你的答案。我不想粗鲁和编辑你的答案。 – hop

0

好,

>>> print(repr(str(a1))) 
'0' 
>>> print(repr(str(b1))) 
'0' 

会做,但别人的评论我不确定你的意图。

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' 
+0

在这种情况下,你不应该依赖'repr()'的行为。只是明确地打印引号。 – hop

+0

@hop你的意思是什么?我想我的答案涵盖了大部分常见选项。 –

+0

我的评论来自编辑。你的下半部分答案显示了为什么依赖'repr()'是一个坏主意。 – hop