Python 如何操作列表
我不知道我的标题是正确的还是有意义的,但这是我唯一想到的,因为split()方法将字符串输入转换/拆分为列表 这是我的密码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
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
再加一个选项卡。封装在[]
中会将所有结果放入一个列表中