我有以下字符串:
test = ['2*0', '4' , '3' , '2' , '3*8' , '4' , '5' , '6' ]我正在寻找一种将字符串更改为以下字符串的方法:
final = ['0' , '0' , '4' , '3' , '2' , '8' , '8' , '8' , '4' , '5' , '6' ]我不知道从哪里开始这个。我需要首先拆分包含*的元素并创建一个新的字符串吗?有什么建议吗?
发布于 2020-11-17 20:37:55
使用以下简单技术:
final=[]
for i in test:
if "*" in i:
a=[i.split("*")[1]]*int(i.split("*")[0])
final.extend(a)
else:
final.append(i)发布于 2020-11-17 20:30:04
如果您找到一个'*'字符,就可以对其进行str.split,并将值和重复的次数分开。然后使用itertools.chain.from_iterable将结果扁平化为列表。
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))输出
['0', '0', '4', '3', '2', '8', '8', '8', '4', '5', '6']发布于 2020-11-17 20:40:52
一衬垫
[item for sublist in
[[s.split("*")[1]]*int(s.split("*")[0]) if "*" in s else s for s in test]
for item in sublist]https://stackoverflow.com/questions/64882774
复制相似问题