python - 检查项目符号是否在列表中
问题描述
因此,我试图通过使用 for 循环遍历它来检查项目符号点是否是列表中项目的一部分。我知道,至少在正则表达式中,一个要点被定义为\u2022
. 但是不知道这个怎么用。我目前拥有但显然不起作用的是这样的。
list = ['changing. • 5.0 oz.', 'hello', 'dfd','df', 'changing. • 5.0 oz.']
for items in list:
if "\u2022" in items:
print('yay')
提前致谢!
解决方案
在Python 3 中,您的代码可以正常工作,因为 UTF-8 是默认的源代码编码。如果您要经常使用 Unicode,请考虑切换到 Python 3。
在Python 2 中,默认将文字字符串视为字节序列,因此您必须通过在它们前面加上前缀来显式声明哪些字符串是 Unicode u
。
首先,将您的源代码编码设置为 UTF-8。
# -*- coding: utf-8 -*-
然后告诉 Python 将这些字符串编码为 Unicode。否则它们将被视为单个字节,这将导致奇怪的事情,例如 Python 认为第一个字符串的长度为 21 而不是 19。
print len(u'changing. • 5.0 oz.') # 19 characters
print len('changing. • 5.0 oz.') # 21 bytes
这是因为Unicode 代码点U+02022 BULLET
是 UTF-8 编码为三个字节e2 80 a2
。第一个将其视为单个字符,第二个将其视为三个字节。
最后,将您要搜索的字符编码为 Unicode。要么u'\u2022'
要么u'•'
。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
list = [u'changing. • 5.0 oz.', u'hello', u'dfd', u'df', u'changing. • 5.0 oz.']
for item in list:
if u'•' in item:
print('yay')
真正的代码可能不会使用常量字符串,因此您必须确保其中的任何内容都list
被编码为 UTF-8。
推荐阅读
- c# - 无法在 asp net core 样板中回滚事务
- r - 如何在 R 中自定义 Facet_Grid 字体标签
- php - 设置请求内容以在 symfony 中测试
- python - 如何每天用python查询一个非常大的在线csv文件以获取新信息?
- image-processing - 如何为 CVAT 中的多边形标签启用“制作 AI 多边形”选项?
- jquery - Locomotive Scroll:是否可以将 querySelector 与 URL 和锚标记一起使用?
- android - BLE 连接问题:我的应用程序作为广播器工作,并且 BLE 设备有时无法连接到我的应用程序
- python - 获取numpy中唯一元素的数量
- r - 从切割间隔中提取数值
- css - 我尝试了所有方法,但没有在列中间找到空格