为什么我切下适合表情符号的卡片后字符串不相等



Python 3.9

cards = ['♥️A','♠️2','♣️3']
ref_list = ['A','2','3']
for a in cards:
print(a[1:])
print(a[1:] in ref_list)

输出是

A
False
️2
False
️3
False

我应该如何修改代码以使其工作?(使输出True?(

欢迎来到Unicode的世界!

>>> len('♥️A')
3
>>> [hex(ord(c)) for c in '♥️A']
['0x2665', '0xfe0f', '0x41']
>>> '♥️A'[0:1]
'♥'
>>> '♥️A'[0:2]
'♥️'

此字符串中的红心由黑心套装和变体选择器代码点组成,因此您的完整字符串有3个代码点。

考虑不使用字符串串联来表示此数据,而是定义一个数据类或至少一个类似('♥️', 'A')的元组。

最新更新