如何在python字典中创建缩写

我想在字典中缩写2个字符串中的第一个字。如何在python字典" title="python字典">python字典中创建缩写

输入字典:

names = { 

'fire' : 'John Smith', 'water' : 'Steve Doe', 'earth' : 'Bob Smith'

}

我想这是输出。

输出词典:

names_ab = { 

'fire' : 'J. Smith', 'water' : 'S. Doe', 'earth' : 'B. Smith'

}

回答:

你可以做这样的事情:

names = {'fire': 'John Smith', 'water': 'Steve Doe', 'earth': 'Bob Smith'} 

names_ab = {}

for element, name in names.items():

first_name, last_name = name.split()

names_ab[element] = '{}. {}'.format(first_name[0], last_name)

print(names_ab)

,输出:

{'fire': 'J. Smith', 'water': 'S. Doe', 'earth': 'B. Smith'} 

如果你需要为更多的名字的工作,你可以使用像这样的东西:

for element, name in names.items(): 

*first_names, last_name = name.split()

names_ab[element] = '{}. {}'.format('. '.join(n[0] for n in first_names), last_name)

回答:

通过使用joinsplit调整在字典中的值

names = { 'fire' : 'John Smith', 'water' : 'Steve Doe', 'earth' : 'Bob Smith will' } 

{k:'. '.join([v[0],' '.join(v.split()[1:])]) for k,v in names.items()}

#Output:

#{'earth': 'B. Smith will', 'fire': 'J. Smith', 'water': 'S. Doe'}

回答:

一种可能的方法是提取在一捕获组该第一个大写字母和使用re.sub()在一个替换字符串引用捕获组:

In [1]: import re 

In [2]: names = { 'fire' : 'John Smith', 'water' : 'Steve Doe', 'earth' : 'Bob Smith' }

In [3]: pattern = re.compile(r"^([A-Z])[a-z]+")

In [4]: print({key: pattern.sub(r"\1.", value)

...: for key, value in names.items()})

{'fire': 'J. Smith', 'water': 'S. Doe', 'earth': 'B. Smith'}

请注意,这也可以处理在字符串中定义了多于两个单词/名称的情况 - 例如“Amy Farrah Fowler“。

虽然,我可以想象一个案例也可以打破这种方法。严格地说,这是一个自然语言处理问题,但取决于您的具体情况中可能的名称。

回答:

这应该适用于您的字典中任何数量的单词作为值。

names = {'earth': 'Bob Smith Jobs', 'fire': 'John Smith', 'water': 'Steve Doe'} 

d = {}

for k in names:

first, *rest = names[k].split()

d[k] = '{0}. '.format(first[0]) + ' '.join(rest)

print(d)

但这只能在Python 3

以上是 如何在python字典中创建缩写 的全部内容, 来源链接: utcz.com/qa/259513.html

回到顶部