【问题标题】:Compare emoticons and put spaces around them in python在python中比较表情符号并在它们周围放置空格
【发布时间】:2018-09-03 08:57:46
【问题描述】:

我有一个数据集,当我遇到一个没有空间的表情时,我想在它们周围放置空间,但我不知道一些事情

  • 我有这份清单

    sentences=["HiRob????","swiggy","????????"].
    

    当它们存储为字符串时如何比较它们。

  • 如何在它们周围放置空格?

    期望的输出

    sentences=["HiRob ???? ","swiggy"," ???? ???? "]
    

我的基本问题是在它们周围放置空格。

【问题讨论】:

  • 您的输出不一致:为什么第一个字符串中的表情符号之后没有空格,但在最后一个字符串中的两个表情符号之前和之后(不仅仅是中间) ?
  • 我的主要目的只是在表情符号和其他字符之间放置空格,末尾有空格不是必要条件,让我编辑使其保持一致
  • this thread 好像有关系

标签: python-3.x emoji emoticons


【解决方案1】:

您可以使用emoji package 来简化您的代码。

from emoji import UNICODE_EMOJI

# search your emoji
def is_emoji(s, language="en"):
    return s in UNICODE_EMOJI[language]

# add space near your emoji
def add_space(text):
    return ''.join(' ' + char if is_emoji(char) else char for char in text).strip()

sentences=["HiRob?","swiggy","??"]
results=[add_space(text) for text in sentences]

print(results)

输出

['HiRob ?', 'swiggy', '? ?']

Try it online!

相关:How to extract all the emojis from text?

如果add_space 看起来像黑魔法,这里有一个更友好的选择:

def add_space(text):
  result = ''
  for char in text:
    if is_emoji(char):
      result += ' '
    result += char
  return result.strip()

【讨论】:

  • 有一个问题,它适用于表情符号,但现在,它正在删除常规句子的空格。[Hi Rob] 的输出是 [HiRob]
  • 谢谢,我是 python 新手,所以我还有一个疑问,你能否详细说明这一行 return ''.join(' ' + char if is_emoji(char) else char for char in text).strip() 。我得到了,如果它是表情符号,你正在使用连接添加一个空格,但我想要看看你的思考过程
  • 好的,我将添加一个初学者替代 add_space。检查更新。
  • is_emoji 功能有问题。您需要以这种方式更改它-> from emoji import unicode_codes def is_emoji(s): return s in unicode_codes.UNICODE_EMOJI['en']
  • @A.Najafi 你能发布一个链接来展示错误吗?我现在无法尝试此代码。
猜你喜欢
  • 2019-03-06
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多