亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么python中的tuple()函數返回很多括號

為什么python中的tuple()函數返回很多括號

catspeake 2021-10-19 15:23:24
需要明確的是,我正在嘗試將元組轉換為字符串,然后將字符串轉換回元組,而無需進行任何更改,例如額外的括號。當我使用這個#Creates and prints an tupletuple_list = (480L, 640L, 3L)print tuple_list它打印 (480L, 640L, 3L)但是當我使用#Converts the tuple to string and then prints the tuple form of the stringstri = str(tuple_list)print tuple([stri])它打印 ('(480L, 640L, 3L)',)為什么不打印這個(480L, 640L, 3L),我如何讓它打印這個?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

然后就這樣做:

`print(stri)`

稍后將此字符串轉換為元組,您必須像這樣使用模塊文字 eval :

from ast import literal_eval

print(literal_eval(stri))


查看完整回答
反對 回復 2021-10-19
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

這一行:

print tuple_list

將元組轉換為字符串表示并將其顯示在屏幕上。

(480L, 640L, 3L)

如果您打印字符串文字“(400”,如下所示:print "(400"那么您將看到

(480

屏幕上。同樣,元組的字符串表示(480L, 640L, 3L)是 string "(480L, 640L, 3L)"

這一行:

stri = str(tuple_list)

還創建 的字符串表示(480L, 640L, 3L)并將其存儲在變量中stri。如果那時您這樣做,print stri您將獲得與原始輸出相同的輸出。但是你的代碼會這樣做:

print tuple([stri])

這在一行中完成了三件事。首先,它創建一個包含一個元素的列表[stri]。然后它調用tuple()which 將 1-element 列表轉換為 1-element tuple (stri,)。最后,它調用printwhich 將您的 1 元素元組轉換為該元組的字符串表示形式:"('(480L, 640L, 3L)',)"并打印它。這回答了你問題的第一部分。

很明顯,您希望stri = str(tuple_list)做一些與它不同的事情。但是從您的問題中不清楚您期望什么輸出。問題是“(480L, 640L, 3L):我如何讓它打印這個?” 但你已經知道答案了,因為這是print tuple_list你的問題所說的輸出。那么你真正期望的輸出是什么?


查看完整回答
反對 回復 2021-10-19
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

這個:


stri = str(tuple_list)

print tuple([stri])

首先創建 的字符串表示tuple_list,然后創建一個包含該字符串作為單個元素的列表,然后tuple從該列表構建一個(與單個元素具有相同的字符串),最后打印該元組的表示。如果你把它分解,這是這樣做的(print在每個步驟中添加語句以使事情更清楚):


stri = str(tuple_list)

print("stri: '{}'".format(repr(stri)))

lst = [stri]

print("lst: '{}'".format(repr(lst)))

tup = tuple(lst)

print("tup: '{}'".format(repr(tup)))

print(tup)

我需要元組形式,但是如果我嘗試將其轉換回來,就會出現這個問題。


ast.literal_eval()那么你想要:


>>> import ast

>>> tup = ("a", "b", "c")

>>> stri = str(tup)

>>> stri

"('a', 'b', 'c')"

>>> result = ast.literal_eval(stri)

>>> result

('a', 'b', 'c')

注意:請注意,這僅適用于包含文字常量的元組。


附帶說明:在print用于檢查對象時,請使用print repr(obj),而不是print obj,以便您獲得對象的正確內部表示。


查看完整回答
反對 回復 2021-10-19
  • 3 回答
  • 0 關注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號