为什么我切出卡片套装表情符号后字符串不相等?

Why are the strings not equal after I slice out card suit emoji?

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]
'♥️'

此字符串中的红心由 Black Heart Suit and the Variation Selector 个代码点组成,因此您的完整字符串有 3 个代码点。

考虑 not using string concatenation 来表示此数据,并定义一个数据类或至少像 ('♥️', 'A') 这样的元组。