说我有以下列表
['\U0001f680', '\U0001f618', '\U0001f44d\U0001f3fe', '\U0001f1e6', '\U0001f1ee']
现在我想合并两个连续的元素,如果两个元素都在U+1F1E6
到U+1F1FF
的范围内,那么结果列表应该是
['\U0001f680', '\U0001f618', '\U0001f44d\U0001f3fe', '\U0001f1e6\U0001f1ee']
所以实际上有两个问题:
我正在运行Python 3.5 btw。
答案 0 :(得分:1)
我并不熟悉unicode以了解您当前的范围请求。它并不尽可能简洁,但我试图考虑元素包含多个字符的情况。我也给了任意unicode范围..希望这有一些帮助。
a = ['\U0001f680', '\U0001f618', '\U0001f44d\U0001f3fe', '\U0001f1e6', '\U0001f1ee']
aa = {x: ord(x.decode('unicode-escape')) if x.count('\\') < 2 else 1 for x in a}
low = 127460
high = 127475
[(y,x) if (high >= aa[x] >= low and high >= aa[y] >= low) else y for x,y in zip(aa.keys()[1:],aa.keys()[:-1])]