首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将连字符分割的复合词分成两个单独的词

如何将连字符分割的复合词分成两个单独的词
EN

Stack Overflow用户
提问于 2019-11-30 20:10:03
回答 5查看 414关注 0票数 8

我有以下清单

代码语言:javascript
复制
list1= ['Dodd-Frank', 'insurance', 'regulation']

我使用以下方法删除连字符

代码语言:javascript
复制
new1 =[j.replace('-', ' ') for j in list1]

我得到的结果

代码语言:javascript
复制
new1= ['Dodd Frank', 'insurance', 'regulation']

理想的结果是

代码语言:javascript
复制
new1= ['Dodd', 'Frank', 'insurance', 'regulation']

我怎样才能用最有效的方式来完成这个任务呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-11-30 20:12:50

代码语言:javascript
复制
list1 = ['Dodd-Frank', 'insurance', 'regulation']
new1 = '-'.join(list1).split('-')
print(new1)

指纹:

代码语言:javascript
复制
['Dodd', 'Frank', 'insurance', 'regulation']
票数 6
EN

Stack Overflow用户

发布于 2019-11-30 20:59:43

从丑到美

美丽胜于丑陋。

但是从丑陋的代码到漂亮的代码通常是值得的。因此,我们将首先使用循环来解决这个问题,然后我们将循环y解决方案按几个步骤推入一个单行中。

首次尝试

代码语言:javascript
复制
res = []
for item in list1:
    sublist = item.split("-")
    for subitem in sublist:
        res.append(subitem)

第二次尝试

我们可以通过在内部sublist循环的头中拆分for来做得更好,以避免在循环之前分配。

代码语言:javascript
复制
res = []
for item in list1:
    for subitem in item.split("-"):
        res.append(subitem)

最后的行动..。

现在我们已经有了迭代然后追加形式的循环,我们可以方便地将它按摩成一个一行。

代码语言:javascript
复制
res = [subitem for item in list1 for subitem in item.split("-")]
票数 2
EN

Stack Overflow用户

发布于 2019-11-30 20:18:11

代码语言:javascript
复制
list2 = []
[list2.extend(i.split("-")) for i in list1] 

list2:

代码语言:javascript
复制
['Dodd', 'Frank', 'insurance', 'regulation']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59119824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档