2015-01-04 69 views
1

我有一個包含uuid4的列表。我也有一個字符串。例如:Python:列表中的UUID

list = [UUID('79d8f4b7-06a0-41d1-99d6-dd8c5308875f'), 'example1', 'example2'] 
string = 79d8f4b7-06a0-41d1-99d6-dd8c5308875f 

但是當我嘗試:

if string in list: 
    print("It's in!") 
else: 
    print("It's not!") 

輸出始終是 「不是」。

我知道有可能是一個數據類型錯誤怎麼回事,但我不能似乎找到它自己。任何幫助表示讚賞,我確信這個簡單的東西將在幾秒鐘內得到修復,這要歸功於提前。

當我輸入print list [0]時,這是輸出:79d8f4b7-06a0-41d1-99d6-dd8c5308875f。但即使當我嘗試說「..列表[0]」,它仍然無法正常工作。

+0

1 U將得到NameError UUID沒有定義 – Hackaholic

+0

它已經在列表中,我並不將其放入列表中手動,所以我沒有得到錯誤 – tester

+0

可能出現該問題的原因,你應該寫'字符串=「79d8f4b7-06a0-41d1-99d6-dd8c5308875f '' – implicati0n

回答

3

您需要將uuid轉換爲字符串str()函數。

>>> import uuid 
>>> x=uuid.uuid4() 
>>> str(x) 
'924db46b-5c51-4330-861c-363570ea9ef6' 

和檢查需要轉換字符串到UUID,與uuid.UUID但這個功能接受字節您需要在字符串中的字節傳遞給它:

>>> my_list = [x, 'example1', 'example2'] 
>>> uuid.UUID(bytes=x.bytes) in my_list 
True 
+0

這似乎仍然不起作用 – tester

+0

第二位剛剛加載,非常感謝,得到了它工作! – tester

+0

@tester yep,我在回答中加上解釋,。別客氣 ! – Kasramvd