首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分包含字符的字符串

拆分包含字符的字符串
EN

Stack Overflow用户
提问于 2020-11-17 20:23:24
回答 5查看 64关注 0票数 0

我有以下字符串:

代码语言:javascript
复制
test = ['2*0', '4' , '3' , '2' , '3*8' , '4' , '5' , '6' ]

我正在寻找一种将字符串更改为以下字符串的方法:

代码语言:javascript
复制
final = ['0' , '0' , '4' , '3' , '2' , '8' , '8' , '8' , '4' , '5' , '6' ]

我不知道从哪里开始这个。我需要首先拆分包含*的元素并创建一个新的字符串吗?有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-11-17 20:37:55

使用以下简单技术:

代码语言:javascript
复制
final=[]
for i in test:
    if "*" in i:
        a=[i.split("*")[1]]*int(i.split("*")[0])
        final.extend(a)
    else:
        final.append(i)
票数 0
EN

Stack Overflow用户

发布于 2020-11-17 20:30:04

如果您找到一个'*'字符,就可以对其进行str.split,并将值和重复的次数分开。然后使用itertools.chain.from_iterable将结果扁平化为列表。

代码语言:javascript
复制
import itertools

def create_element(s):
    if '*' in s:
        rep, val = s.split('*')
        return [val for _ in range(int(rep))]
    return [s]

list(itertools.chain.from_iterable(create_element(i) for i in test))

输出

代码语言:javascript
复制
['0', '0', '4', '3', '2', '8', '8', '8', '4', '5', '6']
票数 1
EN

Stack Overflow用户

发布于 2020-11-17 20:40:52

一衬垫

代码语言:javascript
复制
[item for sublist in 
 [[s.split("*")[1]]*int(s.split("*")[0]) if "*" in s else s for s in test] 
 for item in sublist]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64882774

复制
相关文章

相似问题

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