2017-11-03 77 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

相關問題