如何判断一个字符串是否为列标的元素(忽略大小写)
-
请教大神们一个问题,现在有个情况是我需要判断一个字符串是否在一个列表中,举个例子
-
Data
user = ‘cn1964’
userNumbers = [‘Cn1964’, ‘CN1965’, ‘cn1966’] -
实际情况是,user 在输入的时候,c 和 n 可能大写可能小写,但是只要是 cn1964 这个 user,不论大小写,我都需要判定它是在 userNumbers 中的.
-
目前我所知道的方法是遍历 userNumbers 列表,将 user 和 element 都转为大写或者都转为小写后做对比,但是这个方法有一点不太好,因为实际的 userNumbers 太大了,它有大概 33000 个元素。假如我使用遍历的话,程序的运行效率会显得不很友好
-
大家有什么稳定的、效率高的方法吗?
谢谢,我尝试一下,电脑 运存应该没事
也许你应该从列表入手(觉得你也肯定想到了)~
转成 dict,电脑内存够么。。。
谢谢,相对来说字典会快很多
但是比如我现在的 user 是 ‘cn1964’ , 但是用户提交的时候可能会写成’CN1964’、‘Cn1964’、‘cN1964’,是不确定的,这是装字母的组合,用户好还有多字母的情况,所以我现在能做到的就是先都转为大写或者小写,再多对比,这样遍历转化大写的过程会耗时多一点,判断 in or not 用时没关系。
会重复吗?不会你建一个 字典
{key(小写):value(原始值)}
, 然后用dict.get('cn1964')
,如果返回 None 就是没找到