Python 如何操作列表

Python 如何操作列表,python,string,list,Python,String,List,我不知道我的标题是正确的还是有意义的,但这是我唯一想到的,因为split()方法将字符串输入转换/拆分为列表 这是我的密码 import re fruits = "apple,orange,mango*banana" listOfFruits = re.split("[,*]",fruits) storage = "" for i in range(0, len(listOfFruits)): storage = stora

我不知道我的标题是正确的还是有意义的,但这是我唯一想到的,因为split()方法将字符串输入转换/拆分为列表

这是我的密码

import re

fruits = "apple,orange,mango*banana"
listOfFruits = re.split("[,*]",fruits)

storage = ""
for i in range(0, len(listOfFruits)):
    storage = storage + ("({}) \n({})\n".format(listOfFruits[i], listOfFruits[i]))
    finalStorage = storage + "\n"
print(finalStorage)
输出结果如下所示

(apple) 
(apple)
(orange) 
(orange)
(mango) 
(mango)
(banana) 
(banana)
(mango)
      (banana)
             (grapes)
             (grapes)
      (banana)
(mango)
(orange)
       (apple)
       (apple)
(orange)


我想要的是,只要代码看到星号(*),它就会自动缩进它前面的单词

我希望我的输出是什么

(apple) 
(apple)
(orange) 
(orange)
(mango) 
      (banana) 
      (banana)
(mango)

其他例子

fruits = "mango+banana+grapes,orange+apple
预期的输出应该如下所示

(apple) 
(apple)
(orange) 
(orange)
(mango) 
(mango)
(banana) 
(banana)
(mango)
      (banana)
             (grapes)
             (grapes)
      (banana)
(mango)
(orange)
       (apple)
       (apple)
(orange)



我会在
上进行拆分,然后在迭代结果时,使用
if
语句对带有
*
的任何项目进行不同的处理

如果项目有一个
*
,则在
*
上拆分并枚举结果,将枚举数乘以
\t
以获得正确的间距,然后将其反向添加到末尾并合并为一个字符串

fruits = "mango*banana*grapes,orange*apple"
ListOfFruits = fruits.split(',')

storage = ""
for f in ListOfFruits:
    if '*' not in f:
        storage+= ("({}) \n({})\n".format(f,f))
    else:
        tab_fruits = f.split('*')
        p = ['\t'*i + '('+x+')' +'\n' for i,x in enumerate(tab_fruits)]
        p.extend(reversed(p))
        storage+=''.join(p)
    finalStorage = storage + "\n"
print(finalStorage)
输出


您可以使用递归方法来完成这项艰巨的工作,如下所示:

def get_levels(部分,tab_num=0):
如果不是第节:
返回“”
子级别=获取级别(第[1:]节,选项卡编号+1)
返回'\t'*tab_num+'('+节[0]+')\n'+\
子级别+(\n'如果子级别为其他“”)+\
“\t”*tab_num+”(“+节[0]+”)
def打印水果(水果):
listofruits=fruits.split(',')
存储=“”
对于列表水果中的水果:
存储+=获取_级别(水果分割('*')、0)+'\n'
打印(存储)
使用示例调用
print\u fruits
后,输出如下:

>>> print_fruits("apple,orange,mango*banana")
>>> print_fruits("mango*banana*grapes,orange*apple")

您好,您能解释一下这是怎么做的吗?(很抱歉,是python的新手)`p=['\t'*i+'('+x+')'+'\n'表示枚举(tab_-fruits)]`enumerate返回一个计数器以及列表中的每个元素,这样我们就可以使用
i
计数器乘以tab-列表中的每个水果
x
再加一个选项卡。封装在
[]
中会将所有结果放入一个列表中