gpt4 book ai didi

python - 合并列表中的元素(如果它们在某个 unicode 范围内)

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:59 24 4
gpt4 key购买 nike

假设我有以下列表

['\U0001f680', '\U0001f618', '\U0001f44d\U0001f3fe', '\U0001f1e6', '\U0001f1ee']

现在我想合并两个连续的元素,如果两个元素都在 U+1F1E6U+1F1FF 的范围内,那么结果列表应该是

['\U0001f680', '\U0001f618', '\U0001f44d\U0001f3fe', '\U0001f1e6\U0001f1ee']

所以实际上有两个问题:

  1. 如何检查 unicode 是否在某个范围内?将 unicode 转换为代码点并进行比较?
  2. 如何有效地比较并从中创建新列表?一些Python式的列表理解方式?

顺便说一句,我正在运行 Python 3.5。

最佳答案

我不太熟悉 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])]

关于python - 合并列表中的元素(如果它们在某个 unicode 范围内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33150821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com