我有以下清单
list1= ['Dodd-Frank', 'insurance', 'regulation']我使用以下方法删除连字符
new1 =[j.replace('-', ' ') for j in list1]我得到的结果
new1= ['Dodd Frank', 'insurance', 'regulation']理想的结果是
new1= ['Dodd', 'Frank', 'insurance', 'regulation']我怎样才能用最有效的方式来完成这个任务呢?
发布于 2019-11-30 20:12:50
list1 = ['Dodd-Frank', 'insurance', 'regulation']
new1 = '-'.join(list1).split('-')
print(new1)指纹:
['Dodd', 'Frank', 'insurance', 'regulation']发布于 2019-11-30 20:59:43
从丑到美
美丽胜于丑陋。
但是从丑陋的代码到漂亮的代码通常是值得的。因此,我们将首先使用循环来解决这个问题,然后我们将循环y解决方案按几个步骤推入一个单行中。
首次尝试
res = []
for item in list1:
sublist = item.split("-")
for subitem in sublist:
res.append(subitem)第二次尝试
我们可以通过在内部sublist循环的头中拆分for来做得更好,以避免在循环之前分配。
res = []
for item in list1:
for subitem in item.split("-"):
res.append(subitem)最后的行动..。
现在我们已经有了迭代然后追加形式的循环,我们可以方便地将它按摩成一个一行。
res = [subitem for item in list1 for subitem in item.split("-")]发布于 2019-11-30 20:18:11
list2 = []
[list2.extend(i.split("-")) for i in list1] list2:
['Dodd', 'Frank', 'insurance', 'regulation']https://stackoverflow.com/questions/59119824
复制相似问题