python 检查值是否不在 Unicode 列表中

0 投票
2 回答
5818 浏览
提问于 2025-04-15 22:39

我有一个列表和一个值,我想检查这个值是否不在列表里。

list = [u'first record', u'second record']
value = 'first record'

if value not in list:
    do something

但是这个方法不管用,我觉得可能是因为列表里的值前面有个“u”,我该怎么解决这个问题呢?在有人建议我直接把“u”去掉之前,我想说这个列表是从Django的查询集中返回的,所以我不能直接去掉“u” :)

谢谢

2 个回答

3

我看不出为什么它会不工作:

s1 = 'hello'
s2 = u'hello'
s1 == s2 # True
4

unicode(value) 这个函数会把你的 'first record' 转换成 u'first record'。这样做可能会解决你遇到的问题。不过,根据内容的不同,这个方法可能会失败,这时候你就需要用到 .encode('charset') 这个函数来处理字符串。

另外,你的例子不太好,因为这些字符串在unicode和非unicode中是相等的,所以你的例子实际上是可以正常工作的。

撰写回答