为什么我切出卡片套装表情符号后字符串不相等?
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')
这样的元组。
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')
这样的元组。